HTML有一个空元素的概念,如MDN所列。然而,漂亮的汤似乎不能很好地处理它们:
import bs4
soup = bs4.BeautifulSoup(
    '<div><input name=the-input><label for=the-input>My label</label></div>',
    'html.parser'
)
print(soup.contents)我得到:
[<div><input name="the-input"><label for="the-input">My label</label></input></div>]也就是说,输入已经包装了标签。
问题:有什么方法可以得到漂亮的汤来正确地解析这个吗?或者我还没有找到对这种行为的官方解释?
至少我希望这样的事情:
[<div><input name="the-input"></input><label for="the-input">My label</label></div>]即,输入在标签之前自动关闭。
发布于 2017-03-24 14:45:08
我想说的是,“汤”正在尽它所能来修复这个html结构,在某些情况下,它实际上是有帮助的。
无论如何,对于您的情况,我会说使用lxml,它将根据您的需要解析html结构,或者尝试使用parsel。
https://stackoverflow.com/questions/43002091
复制相似问题