2016-06-24 11 views
0

私はウェブページ内のリンクを読む必要があるwebCrawlerを構築しています。そのために私はpythonのurllib2ライブラリを使ってウェブサイトを開いたり読んだりしています。HTMLコンテンツを読むことができません

データを取得できないウェブサイトが見つかりました。 URLは上記のコード、私は上から取得する私は、ブラウザで開く場合、私は、ウェブサイトから取得したコンテンツとコンテンツを実行することにより、「http://www.biography.com/people/michael-jordan-9358066

私のコード、

import urllib2 

response = urllib2.urlopen("http://www.biography.com/people/michael-jordan-9358066") 
print response.read() 

ですコードは非常に異なります。上記のコードのコンテンツにはデータは含まれていません。

ウェブページの読み込みが遅れている可能性があるので、遅れを導入しました。遅れても応答は同じです。

response = urllib2.urlopen("http://www.biography.com/people/michael-jordan-9358066") 
time.sleep(20) 
print response.read() 

ウェブページはブラウザで完全に正常に開きます。

しかし、上記のコードは、Wikipediaや他のいくつかのWebサイトを読み込むのに問題ありません。 私はこの奇妙な動作の背後にある理由を見つけることができません。助けてください、ありがとうございます。

+0

訪問したサイトがhttpヘッダーのUser-Agentを検出したようです。その場合は、User-Agentを設定すると動作します。 – WKPlus

+0

私はおそらくすべてのデータがjsによって読み込まれると思うので、htmlページでコンテンツを見つけることができません。 –

+0

@WKPlus:ユーザーエージェントをfirefoxとして追加しようとしましたが、応答は同じです。 – wh0

答えて

3

発生している可能性が最も高いのはdynamic web pagesです。これらのページには、urllibまたはrequestsの静的コンテンツはありません。データはサイトに読み込まれます。あなたはこれを解決するためにPythonのseleniumを使うことができます。

+0

これは正解です。私はちょうどそのページをチェックし、そのコンテンツ全体が動的に生成されています。 –

+0

あなたがデータを読み込むためにどのJavaScript JavaScriptを使用するのか分かる場合は、そのURLを開いてデータをフェッチするだけで、効率的ではないと思うセレンの必要はありません。 – WKPlus

関連する問題