質問をすることでしか得られない、回答やアドバイスがある。

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

新規登録して質問してみよう
ただいま回答率
86.12%
スクレイピング

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

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

selenium

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

解決済

クローラー禁止のGoogle検索結果をpythonでスクレイピングしようとするとBOTであるとバレ、recaptchaに飛ばされる。

Jikao
Jikao

総合スコア7

スクレイピング

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

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

selenium

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

2回答

0グッド

2クリップ

986閲覧

投稿2022/10/17 22:27

編集2022/10/17 22:33

前提

googleの検索結果をスクレイピングするクローラーをpythonで造っています。しかし、いくつか処理を施してはいるものの、これまで大量にスクレイピングをしたせいか、GoogleにBOTであるとバレてしまい、recaptchaに飛ばされます。バレないようにスクレイピングしたいです。

Googleがどのようにユーザーとクローラーを判別しているのか、ご教示いただきたいです。

実現したいこと

recaptchaを表示させないようにしつつ、スクレイピングすることです。

発生している問題・エラーメッセージ

https://www.google.com/sorry/index?continue=https://www.google.com/search%3Fq%3D%25E3%2581%2590%25E3%2583%25BC%25E3%2581%2590%25E3%2582%258B%26source%3Dhp%26ei%3D5tFNY8KuA4bP2roPhZGPsAg%26iflsig%3DAJiK0e8AAAAAY03f9nxF9R7JmGc2aVnD6eIIBjLrU6aT&q=EgSKxxXEGOqjt5oGIhBMSMQMHr0J86TrknjxYwjAMgFy

上記のページに飛ばされてしまいます。(クリックするとリンク切れになっていますが、アドレスバーに貼り付けるとrecaptchaのページに到達できます)

該当のソースコード

python

1from selenium.webdriver.chrome.options import Options 2#botだとバレないようにするためのオプションを用意する 3option = Options() 4# シークレットモードの設定を付与 5option.add_argument('--incognito') 6#window.navigator_webdriverの設定をfalseに偽装する 7option.add_argument('--disable-blink-features=AutomationControlled') 8 9 10from selenium import webdriver 11#ウェブドライバーのパス。今回はChrome(自分のドライバーのパス) 12driver_path = "C:\mypg\py\chromedriver.exe" 13driver = webdriver.Chrome(executable_path=driver_path, options=option) 14#ウィンドウ最大化と待ち時間の設定 15driver.maximize_window() 16import time 17INTERVAL = 3.0 18time.sleep(INTERVAL) 19 20URL = "https://www.google.com/" 21driver.get(URL) 22time.sleep(INTERVAL) 23 24#検索窓に入力して調べる 25search = driver.find_element_by_name('q') 26search.send_keys('ぐーぐる') 27search.submit() 28 29#クロームの画面が消えてしまわないように残す用 30input()

試したこと

ソースコードにもありますが、window.navigator_webdriverの値がtrueであることで、クローラーであると判断される事例があったので、window.navigator_webdriverの値をfalseにするよう設定しました。

また、VPNを使ってIPアドレスを変えた場合はうまくいったのですが、毎回同じアドレスでスクレイピングしたいです。

補足情報(FW/ツールのバージョンなど)

OSはWindows11、pythonのバージョンは3.10.7です。

スクレイピングを始めたころは、特に問題なく情報を抜けていたのですが、続けていくうちにrecaptchaの画面に遭遇する頻度が高くなっていき、ついには検索窓にキーワードを入力して検索することすらできなくなってしまいました。

自分で検索するときは何の問題もなく使えているので、どのようにBOTと人を見分けているのか、本当に謎です....。
どうぞよろしくお願いいたします。

以下のような質問にはグッドを送りましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

グッドが多くついた質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

SurferOnWww

2022/10/17 23:47 編集

クローラを使って某図書館サイトにアクセスしたら業務妨害とかで逮捕された事例があるので甘く考えない方がいいよ。禁止と理解してるならなおさら。これ見て通報する人もいるかも。
Jikao

2022/10/18 18:38

コメントありがとうございます。 適切なインターバルを開ければ業務妨害には当たらないという認識でした。 今後はAPIを使いたいと思います。

回答2

7

ベストアンサー

禁止だと理解しているのにしようとするのはかなり悪質ですね!

スクレイピングはやめて、Cusotm Search JSON API を利用するのが筋です。

投稿2022/10/17 22:53

int32_t

総合スコア17085

Bearded-Ockham, AbeTakashi, TakaiY, maisumakun, macof, ps_aux_grep, Jikao👍を押しています

良いと思った回答にはグッドを送りましょう。
グッドが多くついた回答ほどページの上位に表示されるので、他の人が素晴らしい回答を見つけやすくなります。

下記のような回答は推奨されていません。

  • 間違っている回答
  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

回答へのコメント

Jikao

2022/10/18 18:40

解答ありがとうございます。 サーバーに負担がかからない範囲であっても、スクレイピングはやめた方がよさそうですね。 今後はAPIを使うようにします。

3

残念ながら、不法な事柄についての質問は受け付けておりません。
ご自分でどうにかしましょう

投稿2022/10/17 22:48

y_waiwai

総合スコア86007

TakaiY, macof, Jikao👍を押しています

良いと思った回答にはグッドを送りましょう。
グッドが多くついた回答ほどページの上位に表示されるので、他の人が素晴らしい回答を見つけやすくなります。

下記のような回答は推奨されていません。

  • 間違っている回答
  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

2022/10/18 22:02

こちらの回答が複数のユーザーから「質問に対する回答となっていない投稿」という指摘を受けました。

回答へのコメント

Jikao

2022/10/18 18:42

回答ありがとうございます。 今後はAPIを使うようにします。

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

ただいまの回答率
86.12%

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

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

質問する

関連した質問

同じタグがついた質問を見る

スクレイピング

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

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

selenium

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