🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
スクレイピング

スクレイピングとは、公開されているWebサイトからページ内の情報を抽出する技術です。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

selenium

Selenium(セレニウム)は、ブラウザをプログラムで作動させるフレームワークです。この原理を使うことにより、ブラウザのユーザーテストなどを自動化にすることができます。

Google

Googleは、アメリカ合衆国に位置する、インターネット関連のサービスや製品を提供している企業です。検索エンジンからアプリケーションの提供まで、多岐にわたるサービスを提供しています。

Q&A

解決済

3回答

1874閲覧

pythonのseleniumでgoogle検索

_eito_

総合スコア15

スクレイピング

スクレイピングとは、公開されているWebサイトからページ内の情報を抽出する技術です。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

selenium

Selenium(セレニウム)は、ブラウザをプログラムで作動させるフレームワークです。この原理を使うことにより、ブラウザのユーザーテストなどを自動化にすることができます。

Google

Googleは、アメリカ合衆国に位置する、インターネット関連のサービスや製品を提供している企業です。検索エンジンからアプリケーションの提供まで、多岐にわたるサービスを提供しています。

0グッド

0クリップ

投稿2019/11/19 15:40

概要

Pythonクローリング&スクレイピングという本を参考に現在学習しています。以下のコードを実行した際になぜか検索結果が表示されませんでした。

該当のソースコード

python

1from selenium import webdriver 2from selenium.webdriver.common.keys import Keys 3 4#ブラウザを開く 5driver = webdriver.Chrome('PATH') 6#Googleのトップ画面を開く 7driver.get('https://www.google.co.jp/') 8 9#タイトルにGoogleが含まれていることを確認する 10assert 'Google' in driver.title 11 12#検索語を入力して送信する 13input_element = driver.find_element_by_name('q') 14input_element.send_keys('Python') 15input_element.send_keys(Keys.RETURN) 16 17 18#タイトルにPythonが含まれていることを確認する 19assert 'Python' in driver.title 20 21#スクリーンショットをとる 22driver.save_screenshot('search_result.png') 23 24#検索結果を表示する 25for a in driver.find_elements_by_css_selector('h3 > a'): 26 print(a.text) 27 print(a.get_attribute('href')) 28driver.quit() # ブラウザーを終了する。 29

###実現したいこと
本来なら以下の検索結果が表示されるようになっているのですが上記のコードでは表示されませんでした。ただ、スクリーンショットはしっかりととれており、またエラーも出ませんでした。どのようにすれば検索結果が表示されるようになるかご教授頂けると幸いです。
###表示させたい検索結果

Python - ウィキペディア https://ja.wikipedia.org/wiki/Python 専門知識いらず!Pythonとは?言語の特徴から網羅的に徹底解説 | 侍 ... https://www.sejuku.net/blog/7720 Welcome to Python.org https://www.python.org/ Pythonとは?特徴やできること、ダウンロード方法と文法を解説 | TECH ... https://tech-camp.in/note/technology/33753/ Python基礎講座(1 Pythonとは) - Qiita https://qiita.com/Usek/items/ff4d87745dfc5d9b85a4 Pythonとは?何に使えるの?Pythonの特徴や使い道を…|Udemy メディア https://udemy.benesse.co.jp/development/python.html Top - python.jp https://www.python.jp/ 今さら聞けない!Pythonとは【初心者向け】 | TechAcademyマガジン https://techacademy.jp/magazine/15507 Pythonは今のうちに習得すべき?『スラスラわかるPython』著者・岩崎さんと ... https://codezine.jp/article/detail/10329 Pythonで最初に知っておきたかったことのまとめ【初心者向け】 - karaage ... http://karaage.hatenadiary.jp/entry/2017/12/27/073000

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

ベストアンサー

HTML構成はよく変更されるので、書籍で提示されている構成とはすでに異なっている可能性が高いです。
ですので、現在もその構成となっているのかをご自身で確認する必要があります。
確認する方法がわからない、あるいは書籍で明確に記載がない場合は、もう少し別の
方法で勉強されることをお勧めいたします。

そして、取得できないのは、現在の構成が、少なくともコードで提示している 「H3 > a」ではないということです。

ちなみに、Googleの利用規約を読んでも違反なのかどうか私には読み取れませんでしたが、人間がアクセスする以上の頻度でアクセスするなどサーバに負荷をかけるような方法は業務妨害になるので気をつけましょう。
https://policies.google.com/terms

投稿2019/11/20 03:11

t_obara

総合スコア5488

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

_eito_

2019/11/21 04:19

やはり構成が変わっているのですね。 私が参考にした書籍にもサーバーに負荷をかけるような方法をとってはいけないと記述されていたので過度なアクセスは避けるようにします。丁寧な回答ありがとうございました。
guest

0

google の検索結果を機械的に入手することは規約違反です。
クローリング学習の最初に「規約の理解」と「アクセスコントロール」を徹底させない教本はゴミなので、別の教本で学習することをオススメします。

投稿2019/11/19 23:38

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

te2jiさんのおっしゃる通りgoogleは規約違反なのですが、
同じ質問をされる方がいらっしゃり、一様にうまく行っていないことから、
おそらくgoogleがスクレイピング対策を講じていると私は考えています。

他のスクレイピング違反ではないサイトで実験してみてください。

投稿2019/11/20 01:56

shirai

総合スコア1290

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問