gpt4 book ai didi

python - 使用 lxml,是什么导致 "lxml.etree.XMLSyntaxError: Document is empty"错误?

转载 作者:数据小太阳 更新时间:2023-10-29 01:57:43 30 4
gpt4 key购买 nike

我正在使用 mechanize/cookiejar/lxml 来读取页面,它适用于某些页面但不适用于其他页面。我在其中遇到的错误是标题中的错误。我不能在这里发布页面,因为它们不是 SFW,但是有没有办法修复它?基本上,这就是我所做的:

import mechanize, cookielib
from lxml import etree

br = mechanize.Browser()
cj = cookielib.LWPCookieJar()
br.set_cookiejar(cj)

br.set_handle_equiv(True)
br.set_handle_gzip(True)
br.set_handle_redirect(True)
br.set_handle_referer(False)
br.set_handle_robots(False)
br.set_handle_refresh(mechanize._http.HTTPRefreshProcessor(), max_time=1)
br.addheaders = [('User-agent', 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.13) Gecko/20101206 Ubuntu/10.10 maverick Firefox/3.6.13')]

response = br.open('...')
tree = etree.parse(response) #error

之后,我获取根目录并在文档中搜索我想要的值。显然 iterparse 不会使它崩溃,但目前我假设它不只是因为我没有用它处理任何东西。另外,我还没有弄清楚如何用它搜索内容。

我试过禁用 gzip 并启用发送 referer,但都没有解决问题。我还尝试将源代码保存到磁盘并为此创建树,但我遇到了同样的错误。

编辑
我得到的响应似乎很好,按照建议使用 print repr(response) 我得到了 <response_seek_wrapper at 0xa4a160c whose wrapped object = <stupid_gzip_wrapper at 0xa49acec whose fp = <socket._fileobject object at 0xa49c32c>>> .我还可以使用 read() 方法保存响应并检查保存的 .xml 是否适用于浏览器和所有内容。

此外,在其中一个页面中,有一个 &rsquo;这给了我以下错误:“lxml.etree.XMLSyntaxError:实体‘rsquo’未定义,第 17 行,第 7054 列”。到目前为止,我已经用正则表达式替换了它,但是有没有可以处理这个问题的解析器?即使使用下面建议的 lxml.html.parse,我也遇到了这个错误。

关于突出显示的文件,我的意思是当我用 gEdit 打开它时,它会执行以下操作:http://img34.imageshack.us/img34/9574/gedit.jpg

最佳答案

对 html 使用 lxml.html.parse 它甚至可以处理非常破损的 html,你仍然会收到错误消息吗?

关于python - 使用 lxml,是什么导致 "lxml.etree.XMLSyntaxError: Document is empty"错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4642430/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com