4
Я разобрал HTML
с BeautifulSoup. В конце я хотел бы получить содержимое body
, но без тегов body
. Но BeautifulSoup добавляет html
, head
и body
теги. Предлагается я this googlegrops discussion один из возможных решений:BeautifulSoup - как мне получить содержимое тела
>>> from bs4 import BeautifulSoup as Soup
>>> soup = Soup('<p>Some paragraph</p>')
>>> soup.body.hidden = True
>>> soup.body.prettify()
u' <p>\n Some paragraph\n </p>'
Это решение хак. Должен быть лучший и очевидный способ сделать это.
Спасибо! Когда у меня есть два абзаца, я должен использовать что-то вроде '. '.join (['% s '% x для x в файле soup.body.findChildren()]), или есть лучший способ? –
Я нахожу ваш путь довольно хорошим. – Azwr
У меня возникли проблемы с использованием findChildren, где некоторые вещи выглядели избыточно, поскольку они были вложены в несколько слоев и были добавлены для каждого содержащего слоя. Чтобы получить содержимое из тела, как оно есть в оригинале без какой-либо избыточности или странности, я использовал 'pagefilling = '. .join (['% s '% x для x в soup.body.contents])' – kpie