我正在使用优美汤(bs4)来废弃HTML页面。它有list <ul>,它有<li>,它包含一些有趣的链接(href)。
片段
<ul>
<!-- C 1-3 --></p>
<li>
<a href="http://LINK1" target="_blank">Link1 description</a>
</li>
</ul>
<ul>
<!-- E 1-2-3-6 --></p>
<li>
<a href="LINK-2" target="_blank">Link-2 description</a>
</li>
<p><!-- E 4-5 -7-8-9-10-11 --></p>
</ul>问题:当我使用find_all()提取所有的<ul>时,我不会得到它,因为格式错误的结束</p>没有打开<p>。浏览器会忽略这一点,并呈现ok,但是BS4会破坏解析。是否有人试图忽略BS4中任何格式错误的标签(如果存在)?
entries = soup.find_all(lambda x: x.name == 'ul')
print(len(entries))
print(entries[0])
1
<ul>
<!-- C 1-3 --></ul>发布于 2016-04-11 02:22:21
我认为您应该尝试一个更宽松的HTML解析器。例如:
soup = BeautifulSoup(pg, "html5lib")因为html5lib解析器是最宽松的解析器。其优点是:
缺点是:
这些文档提供了对不同解析器优缺点的一些解释:https://beautiful-soup-4.readthedocs.org/en/latest/#installing-a-parser
https://stackoverflow.com/questions/36538789
复制相似问题