Python 脚本在 Google Colab 上运行,但不在本地运行

Python script runs on Google Colab but not locally

提问人:luizgsm 提问时间:10/27/2023 最后编辑:luizgsm 更新时间:10/27/2023 访问量:74

问:

我试图在 VS Code pyhton 笔记本中运行此脚本并收到该错误。

import requests
import xmltodict
xml = requests.get('https://websvc.biocyc.org/getxml?id=META:TYRFUMCAT-PWY')
dbiocyc = xmltodict.parse(xml.text)

ExpatError: not well-formed (invalid token): line 24, column 65

在 Google Colab 上运行它,我得到了正确的输出。

两者都在 Python 3.10.12、xmltodict 0.13.0、请求 2.31.0

有人可以帮我弄清楚为什么会这样?

我本来以为会得到一本包含网页信息的字典,但我得到了一个错误。


更新1:

在rasjani注释之后,我比较了两个requests.get()输出,将它们保存为.xml文件。

在 Google Colab 上,它按原样保存页面。

在本地,正在保存另一个页面,而不是我想要的页面,一个 HTML 页面,它在第 24 行有 XML 禁止字符。

左图:我在本地运行脚本的文件 -- 右图:我在 Google Colab 上运行的文件 - 我想在本地获取它

Python 网页抓取 python-requests xml-解析 xmltodict

评论

0赞 rasjani 10/27/2023
保存文件并检查第 24 行上的内容?您不会检查requests.get()的状态代码是什么..
0赞 Iman Mohammadi 10/27/2023
尝试指定编码以确保一致性。
1赞 pho 10/27/2023
这回答了你的问题吗?xml.parsers.expat.ExpatError:格式不正确(令牌无效)
0赞 luizgsm 10/27/2023
@rasjani我现在这样做了,request.get() 没有获得正确的数据,感谢您的帮助,现在我需要弄清楚为什么会发生这种情况。
0赞 luizgsm 10/27/2023
@ImanMohammadi 我想我没有使用 requests.get() 的这个选项,是吗?

答: 暂无答案