在给定行号和列号的情况下,如何在python中定位XML错误?

2024-06-30 15:50:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我在解析xml时出错。它给出了一个行号和列号,但我不知道如何定位它

我的代码

urlBase = 'https://www.goodreads.com/review/list_rss/'
urlMiddle = '?shelf=read&order=d&sort=rating&per_page=200&page='
finalUrl = urlBase + str(32994) + urlMiddle +str(1)
resp = requests.get(finalUrl)
from xml.etree import ElementTree as ET
x = ET.fromstring(resp.content)

错误

  File "<string>", line unknown
ParseError: not well-formed (invalid token): line 952, column 1023

我试着打印内容,但只有一行

resp.content

输出太大,无法在此处打印

因此,我不知道如何检查特定的行,因为它只是一行


Tags: 代码https定位wwwlinepagexmlcontent
2条回答

很可能您在Windows上,打印不正确,例如\n

尝试添加: open(‘resp.xml’).write(resp.content) 在你得到resp之后

然后,您可以在编辑器中打开resp.xml并查看第952行的外观

您正在尝试使用XML解析器解析HTML内容。如果内容不是XML有效的:如果不是XHTML,则可能会遇到问题

相反,您可以使用类似于lxml的HTML解析器

比如说

parser = etree.HTMLParser()
tree   = etree.parse(BytesIO(resp.content), parser)

这会解决你的问题

相关问题 更多 >