Разбор HTML с BeautifulSoup 4 и Python - PullRequest
6 голосов
/ 30 марта 2012

Я пытаюсь разобрать список результатов http://mobile.de.

Сначала я попробовал его с классом HTMLParser, но получил ошибку: HTMLParser.HTMLParseError: EOF in middle of construct.

Итак, я попыталсяэто с BeautifulSoup 4, что лучше для недействительных веб-сайтов, но <div>, который я ищу, недоступен, и я не могу сказать, является ли это моей ошибкой или ошибкой веб-сайта.*listEntry это <div> с результатом машины.Но, похоже, он не разбирает <form id="parkAndCompareVehicle" name="parkAndCompareVehicle" action="">.Я не могу найти форму в супообъекте.

Где вина?

1 Ответ

3 голосов
/ 30 марта 2012

Это должно быть что-то вроде:

for link in soup.findAll('div', {'class': 'listEntry '}):
    print link

Атрибуты указаны в словаре - findAll(self, name=None, attrs={}, recursive=True, text=None, limit=None, **kwargs)

==========

обн. Извините, но в bs4 вы тоже можете так поступить.

Что касается ошибки, то искомая форма отсутствует в результатах, поскольку, насколько я вижу, она включает listEntries.

Что не так с этим:

form = soup.find('form', id='parkAndCompareVehicle')
print len(form.find_all('div', 'listEntry '))
...