2016-09-07 2 views
-1

私はちょうどPythonでWebを掻き集めて壁に当たっています。 リクエストライブラリを使用して、WebサイトからHTMLコードを取得しています。たとえば、Googleの検索結果のウェブサイト:「https://www.google.com/?gws_rd=ssl#q=ballrequests.get()からすべてのHTMLを取得する

私はF12をヒットし、HTMLをチェックし、それはよりも違って見える:

requests.get
site = requests.get("https://www.google.com/?gws_rd=ssl#q=ball") 
print(site.text) 

、テキストが非常に短く、すべてではありません情報は表示されます(しかし、それは!doctypeで始まります)。 そのため、私はこのHTMLで作業することができません。

あなたは間違いがどこにあるか教えていただけますか?


これは、実際には「Pythonで退屈なものを自動化する」という本の演習です。タスクは、いくつかの項目のGoogleを検索し、HTMLロケータで最初の結果をほとんど見つけないことです。私が使用するときに私はそれをすることができませんrequests.get()私はHTMLコード内のリンクのためのオブジェクトを見ることができません。

+0

Googleが返すものに影響を及ぼす要因は別として、js –

+0

で動的に作成されたコンテンツもあります。このようにも見えます - http://stackoverflow.com/questions/22623798/google-search-with-python -requests-library –

答えて

1

ブラウザの開発ツールを使用して表示されるHTMLは、ブラウザが現在作業しているものです。これには、Javascriptを介して行われた変更が含まれます。リクエストを使用して取得したデータは、ページ上でJavascriptが動作する前のデータです。 (リクエストはJavascriptを処理しないため、リクエストのみを使用してjavascriptの処理ページを取得することはできません)。

特にGoogle検索をスクラップする場合は、https://www.google.com/search?q=testのようなURLを使用します。この特定のURLは、Googleの非javascriptサイト用です。 Google(および他のほとんどのサイト)は掻き分けを気にしないので、他の問題にぶつかる可能性があります。

+0

それは動作します!どうもありがとうございました。問題は、私が "https://www.google.com/?gws_rd=ssl#q="をベースとして使用したことです(ブラウザから直接コピーしました)。代わりに、私はあなたが言ったように "https://www.google.com/search?q="を使うべきです。ありがとうございました。 – Maciejjy

0

一部のHTML要素はJavaScriptによって生成されます。

ブラウザから「show source code」を使用すると、元のコードが表示されます。要求応答テキストと似ている必要があります。

関連する問題