繁体   English   中英

lxml.html找不到正文标签

[英]lxml.html does not find body tag

我使用lxml.html解析各种html页面。 现在,我认识到,至少在某些页面上,尽管存在body标记,但没有找到body标记,而汤很漂亮地找到了它(即使它使用lxml作为解析器)。

范例网页: https//plus.google.com/ (剩下的内容)

import lxml.html
import bs4

html_string = """
    ... source code of https://plus.google.com/ (manually copied) ...
"""

# lxml fails (body is None)
body = lxml.html.fromstring(html_string).find('body')

# Beautiful soup using lxml parser succeeds
body = bs4.BeautifulSoup(html_string, 'lxml').find('body')

任何关于这里发生的事情的猜测都欢迎:)

更新:

问题似乎与编码有关。

# working version
body = lxml.html.document_fromstring(html_string.encode('unicode-escape')).find('body')

您可以使用如下形式:

import requests
import lxml.html

html_string = requests.get("https://plus.google.com/").content
body = lxml.html.document_fromstring(html_string).find('body')

body变量包含body html元素

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM