为什么从站点检索的xml看起来不像web浏览器内容?

2024-05-21 00:27:01 发布

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

我一直试图获取在这里找到的xml数据:http://www.thetvdb.com/api/D1BD82E2AE599ADD/mirrors.xml

您会注意到,在web浏览器中很容易读取xml数据。但是,当我尝试使用urllib2加载它时,会出现以下问题。(基于http://www.doughellmann.com/PyMOTW/urllib2/上的教程):

import urllib2
response = urllib2.urlopen('http://www.thetvdb.com/api/D1BD82E2AE599ADD/mirrors.xml')

print response.read()

输出:

^{pr2}$

我尝试过其他网站(例如:python.org网站)而且似乎很管用。这个问题似乎与库无关(我在urllib,httplib,httplib2,…)上遇到过同样的问题,而且这个问题似乎是针对我要获取的站点。在

什么给予?在

编辑:好吧,我好像很困惑我“应该”看到什么。出于好奇,有人知道“剧本”部分是什么吗?我正在使用googlechrome(稳定版)查看页面。在


Tags: 数据comapiwebhttp网站responsewww
2条回答

在某些情况下,一个站点提供了一个样式表,告诉它如何将原始XML转换为(X)HTML,因此呈现和文本内容可能会有很大的不同。但是我在这里看不到;我得到的(在Chrome或Firefox中)你提供的URL看起来很像你的脚本给你的,所以我不想知道你有什么不同。在

“如果在web浏览器中加载页面,则显示的数据与此完全不同。我正在用这些信息更新问题….“

当我用Chrome得到这个示例URL时,我就得到了Python代码所得到的结果,原始数据。在

您的浏览器可以自动检测到XML并将其格式化为HTML。它与Python得到的“完全相同”,即原始数据。浏览器把你弄糊涂了。在

注意:不要相信您看到的或使用开发工具报告的信息,它向您展示了HTML在本例中,这是一个围绕Chrome神奇地生成的输出的包装器,Chrome通过代码折叠(JavaScript)和其他所有的bling来实现XML的交互式显示,而不是服务器实际向您发送的内容,这是您在使用查看源代码时应该看到的内容。在

相关问题 更多 >