soup.find("tagName", { "id" : "articlebody" })
Почему это НЕ возвращается <div id="articlebody"> ... </div>
теги и промежуточный материал? Это ничего не возвращает. И я знаю для факта, он существует, потому что я смотрю прямо на него от
soup.prettify()
soup.find("div", { "id" : "articlebody" })
также не работает.
Править: Никто не отвечает к этому сообщению - как я удаляю его? Я нашел, что BeautifulSoup не анализирует правильно, который, вероятно, на самом деле означает страницу, которую я пытаюсь проанализировать, правильно не отформатирован в SGML или что бы то ни было.
Вы должны опубликовать свой пример документа, потому что код работает нормально:
>>> import BeautifulSoup
>>> soup = BeautifulSoup.BeautifulSoup('<html><body><div id="articlebody"> ... </div></body></html')
>>> soup.find("div", {"id": "articlebody"})
<div id="articlebody"> ... </div>
Нахождение
>>> soup = BeautifulSoup.BeautifulSoup('<html><body><div><div id="articlebody"> ... </div></div></body></html')
>>> soup.find("div", {"id": "articlebody"})
<div id="articlebody"> ... </div>
Вот фрагмент кода
soup = BeautifulSoup(:"index.html")
titleList = soup.findAll('title')
divList = soup.findAll('div', attrs={ "class" : "article story"})
, как вы видите, я нахожу все теги, а затем я нахожу все теги с Class = «Статью» внутри
Я использовал:
soup.findAll('tag', attrs={'attrname':"attrvalue"})
как мой синтаксис для поиска / Findall; Это сказано, если не существует других необязательных параметров между списком тегов и атрибута, это не должно быть другим.
В источнике BeautifulSououous эта строчка позволяет вложить Divs в рамках Divs; Таким образом, ваша забота в комментарии Лукас не будет действительным.
NESTABLE_BLOCK_TAGS = ['blockquote', 'div', 'fieldset', 'ins', 'del']
Что я думаю, вам нужно сделать, это указать привлечения, которые вы хотите, например,
source.find('div', attrs={'id':'articlebody'})
Вы пробовали SUP.findall («Div», {«ID»: «Articlebody»})
?
звучит с ума, но если вы соскабливаете Вещи из дикой природы, вы не можете исключить несколько Divs ...
Я думаю, что возникает проблема, когда теги 'div' слишком много вложены. Я пытаюсь разобрать некоторые контакты из html-файла facebook, и Beautifulsoup не может найти теги «div» с классом «fcontent».
То же самое происходит и с другими классами. Когда я ищу div вообще, оказываются только те, которые не так уж много вложены.
Исходный код html может быть любой страницей из facebook списка друзей вашего друга (не одного из ваших друзей). Если кто-то сможет протестировать его и дать совет, я был бы очень признателен.
Это мой код, в котором я просто пытаюсь вывести количество тегов «div» с классом «fcontent»:
from BeautifulSoup import BeautifulSoup
f = open('/Users/myUserName/Desktop/contacts.html')
soup = BeautifulSoup(f)
list = soup.findAll('div', attrs={'class':'fcontent'})
print len(list)