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

时间:2012-03-12 15:13:08

标签: python http

我一直在尝试获取此处的xml数据:http://www.thetvdb.com/api/D1BD82E2AE599ADD/mirrors.xml

您会注意到您的网络浏览器中可以轻松读取xml数据。但是,当我尝试使用urllib2加载它时,会出现以下问题。 (根据http://www.doughellmann.com/PyMOTW/urllib2/上的教程):

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

print response.read()

输出:

'<?xml version="1.0" encoding="UTF-8" ?>\n<Mirrors>\n  <Mirror>\n    <id>1</id>\n    <mirrorpath>http://thetvdb.com</mirrorpath>\n    <typemask>7</typemask>\n  </Mirror>\n</Mirrors>\n'

我已尝试过其他网站(例如:python.org),它似乎有效。问题似乎是独立于库(我在urllib,httplib,httplib2等方面遇到了同样的问题),问题似乎是我想要获取的网站特有的。

是什么给出了?

编辑:好吧,好像我对“应该”看到的内容感到困惑。出于好奇,有人知道“脚本”部分是什么吗?我正在使用谷歌浏览器(稳定)查看该页面。

2 个答案:

答案 0 :(得分:6)

“它看起来与在网页浏览器中加载页面时显示的数据完全不同。我正在使用此信息更新问题..”

当我使用Chrome获取该示例网址时,我会得到您使用Python代码获得的内容,原始数据

您的浏览器会自动检测XML并将其格式化为HTML格式。它与Python的“完全相同”,即原始数据。浏览器让你对你应该期待的东西感到困惑。

注意:不信任您所看到或通过开发人员工具信息报告的信息,它会显示 HTML 这种情况是Chrome生成的输出周围生成的包装器,可以通过代码折叠(JavaScript)和所有其他bling来实现XML的交互式显示,而不是服务器实际发送给您的内容,这是您应该看到的内容您使用查看来源

答案 1 :(得分:1)

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