我有一个html文档,我可以使用BeautifulSoup获取其元素,并提取文本。但我的问题是,尝试使用“getText()”方法获取文档的主体,它合并所有段落并返回一行。我尝试了不同的方法来获得单独的段落,但没有成功。 该文件的格式为:
<div class="body" style="text-align: justify;padding: 20px;"> <div align="justify"><span style="font-weight: bold; color: rgb(128, 0, 0);"><img style="border: medium none; margin-left: 10px;" alt="" title="" src="/files/7/7/86119_216.jpg" align="right">ABC-</span>Paragraph 1<br><br>Paragraph 2<br><br>Paragraph 3<br><br><span style="font-weight: bold;">Paragraph 4</span><br>Paragraph 5 <span style="font-weight: bold; font-style: italic; text-decoration: underline; color: rgb(128, 0, 0);">Paragraph 6</span>Paragraph <br><br>Paragraph</div> <div class="wrapper"></div> </div> </div>
我目前用于获取本文档正文的内容是:
soup = BeautifulSoup( page )
body = soup.find("div", {"class":"body"})
直到这里一切都好。我现在的问题是如何获取正文中的段落。 有什么想法吗?
尝试处理另一个html文件,我在提取段落时遇到了另一个问题。这个新页面的格式是:
<div class="detailCont">
<span>News agency:</span>
<h2>
Header
</h2>
<div>
<img class="showNewsImg" src="http://images.agency.com/images/position36/2013/9/khrid_hvapyma-910407-as.jpg" />
</div>
<div class="lead">
<span>additional info</span>-
agency:<br />Paragraph 1
</div>
<p>Paragraph 2</p>
<p>Paragraph 3</p>
<p>Paragraph 4</p>
<p>Paragraph 5</p>
</div>
我需要的所有数据都在这部分中。所以我可以使用以下命令获取此部分:
doc = soup.find("div", {"class":"detailCont"})
其中包含听觉和身体。 为获取标题,我使用以下命令:
header = doc.h2
但我不知道我怎么能得到身体。 有任何想法吗? 最好成绩。
答案 0 :(得分:0)
使用列表理解:
[s for s in body.strings if s.strip() != '']
它产生:
['ABC-',
'Paragraph 1',
'Paragraph 2',
'Paragraph 3',
'Paragraph 4',
'Paragraph 5 ',
'Paragraph 6',
'Paragraph ',
'Paragraph']