【发布时间】:2023-03-17 11:15:01
【问题描述】:
在 beautifulsoup 的上下文中,lxml 和 html5lib 解析器的能力有区别吗?我正在尝试学习使用 BS4 并使用以下代码结构 --
ret = requests.get('http://www.olivegarden.com')
soup = BeautifulSoup(ret.text, 'html5lib')
for item in soup.find_all('a'):
print item['href']
我开始使用 lxml 作为解析器,但注意到对于某些网站,即使页面中有有效链接,也永远不会输入 for 循环。同一页面适用于 html5ib 解析器。是否有任何特定类型的页面可能不适用于 lxml?
我在 Ubuntu 上使用 python-lxml 2.3.2-1 和 libxml2 2.7.8.dfsg-5.1ubunt 和 html5lib-1.0b3
编辑:我更新到 lxml 3.1.2 仍然看到同样的问题。在运行 3.0.x 的 mac 上,相同的页面正在被正确解析。有问题的网站是 www.olivegarden.com
【问题讨论】:
-
您可以在 lxml 中使用 html5lib 解析器和 BeautifulSoup 解析器。见lxml.de/elementsoup.html & lxml.de/html5parser.html
标签: python beautifulsoup lxml html5lib