2012-03-12 38 views
2

我一直在試圖取得在這裏找到的XML數據:http://www.thetvdb.com/api/D1BD82E2AE599ADD/mirrors.xml爲什麼從網站檢索到的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等有同樣的問題),這個問題似乎與我試圖獲取的網站有關。

什麼給?

編輯:好吧,似乎我很困惑,我應該「看到」。出於好奇,是否有人知道「腳本」部分是什麼?我正在使用谷歌瀏覽器查看該頁面(穩定)。

+5

你有輸出。所以有什麼問題? – Celada 2012-03-12 15:16:27

+0

你在說什麼錯誤?輸出對我來說看起來很好。 – 2012-03-12 15:16:51

+0

你的問題是什麼?你的xml似乎是有效的,你是否嘗試用xml庫解析它? – 2012-03-12 15:17:19

回答

6

「它看上去一點也不像,如果頁面在Web瀏覽器中加載時顯示的數據。我更新的問題,這個信息。」

當我用Chrome瀏覽器例如URL我得到了你的Python代碼,原始數據

您的瀏覽器會自動檢測XML並將其格式化爲HTML。它與Python獲取的「完全相同」,即原始數據。瀏覽器讓你感到困惑,你應該期待什麼。

注:不相信你所看到或報告與開發工具信息,就說明你HTML這是在這種情況下,圍繞着Chrome的神奇產生的輸出生成的包裝使用代碼摺疊(JavaScript)和所有其他金光閃爍的交互式顯示XML,而不是服務器實際發送給您的內容,這是您在使用查看源時應該看到的內容。

+0

感謝您的迴應!這很好聽。我將繼續前進並用xml庫解析它,但出於好奇,我看到的這個額外'腳本'部分是什麼(運行谷歌瀏覽器)? – blz 2012-03-12 15:23:25

+1

我在Win 7上使用Chrome,並且在XML中看不到任何腳本元素。打開它時你做了些什麼特別的事嗎? – 2012-03-12 15:30:20

1

在某些情況下,網站會提供樣式表,告訴它如何將原始XML轉換爲(X)HTML,因此呈現和文字內容可能會非常不同。但是 - 我在這裏沒有看到;我得到的(無論是Chrome還是Firefox)對於你給出的URL看起來好像,正如,就像你的腳本給你的東西,所以我不會在哪裏得到改變。

相關問題