2012-03-12 10 views
2

ここにあるxmlデータを取得しようとしています。http://www.thetvdb.com/api/D1BD82E2AE599ADD/mirrors.xmlサイトから取得したxmlがウェブブラウザのコンテンツのように見えないのはなぜですか?

xmlデータはWebブラウザで簡単に読み取られます。しかし、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などと同じ問題を抱えています)、問題はフェッチしようとしているサイトに固有のようです。

何がありますか?

EDIT:大丈夫ですが、私は "見るべき"ものが混乱していたようです。好奇心から、誰が "スクリプト"セクションが何であるか知っていますか? Google Chrome(安定版)を使用してページを表示しています。

+5

出力があります。だから問題は何ですか? – Celada

+0

あなたはどんなことを言っていますか?出力は私にはうまく見えます。 –

+0

あなたの問題は何ですか?あなたのXMLは有効であるようですが、あなたはXMLライブラリでそれを解析しようとしましたか? –

答えて

6

「それはページがWebブラウザにロードされている場合に表示されるデータのようなものが見えていない。私は、この情報に質問を更新しています..」

を私はChromeでこの例のURLを取得すると私は正確にあなたのPythonコードを取得している、生データを取得します。

あなたのブラウザは自動的にXMLを検出し、HTMLとしてフォーマットしています。これはPythonが得ているものと全く同じです。生データです。ブラウザはあなたが期待しているべきものをあなたに混乱させています。

注:は何を参照してください信頼していないか、開発者ツール情報が報告され、それはあなたにこの場合にはクロムが魔法のように生成されていることを出力周りに生成されたラッパーであるHTMLを示しコード折りたたみ(JavaScript)とその他のすべてのblingを使用して、サーバーが実際に送信しているものではなく、対話式でXMLを表示できるようにします。ソースの表示を使用すると表示されるはずです。

+0

応答のおかげで!これは良いことです。私は先に進んでxmlライブラリで解析しますが、好奇心から、この特別な「スクリプト」セクションは何ですか(私はGoogle Chromeを実行しています)を見ていますか? – blz

+1

私はWin 7でChromeを使用していますが、XMLにはスクリプト要素はありません。あなたはそれを開くときに何か特別なことをしていますか? –

1

スタイルシートは、生のXMLを(X)HTMLに変換する方法を示すサイトから提供されるため、レンダリングとリテラルの内容が大きく異なる場合があります。しかし、私はここでそれを見ません。あなたが与えたURLのために(ChromeかFirefoxのいずれかで)入手したものはとちょうどのように見えます。

関連する問題