我试图从列表数据格式不正确的<UL>
获取数据。换句话说,列表中缺少结束标记(</LI>
):
<UL>
<LI>Blah2
<LI><A>Blah</A>
<LI><A>Blah2</A>
</UL>
<UL>
<LI><A>Blah</A>
<LI>Blah2
<LI><A>Blah2</A>
</UL>
<UL>
<LI><A>Blah</A>
</UL>
<UL>
<LI>Blah
</UL>
我能重复一下吗?如示例所示,可以有链接和无链接的混合。最重要的是我获取链接(如果有的话)和文本。你知道吗
不幸的是,BeutifulSoup试图修复格式错误的HTML,并造成比需要更多的损坏:
from bs4 import BeautifulSoup as bsoup
html = '<UL><LI>Blah><LI><A>Blah</A><LI><A>Blah2</A></UL>'
print bsoup(html).prettify()
>>> <ul>
>>> <li>
>>> Blah>
>>> <li>
>>> <a>
>>> Blah
>>> </a>
>>> <li>
>>> <a>
>>> Blah2
>>> </a>
>>> </li>
>>> </li>
>>> </li>
>>> </ul>
如上面的示例所示,Bsoup将所有结束标记添加到列表项的末尾。你知道吗
根据我的评论,BS4 handles invalid HTML differently depending on which parser you use。four parsers that are supported是:
您可以使用试错法,或者具体查看您的问题以及每个解析器处理问题的方式(使用上面的链接),然后选择一个按照您希望的方式运行的解析器。你知道吗
如果没有嵌套列表项,可以使用正则表达式手动关闭
<li>
标记:相关问题 更多 >
编程相关推荐