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

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

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

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

Python 3.x

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

selenium

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

Q&A

解決済

2回答

3048閲覧

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

Jikao

総合スコア7

スクレイピング

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

Python 3.x

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

selenium

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

0グッド

2クリップ

投稿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と人を見分けているのか、本当に謎です....。
どうぞよろしくお願いいたします。

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2022/10/17 23:47 編集

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

2022/10/18 18:38

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

回答2

0

ベストアンサー

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

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

投稿2022/10/17 22:53

int32_t

総合スコア20941

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

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

Jikao

2022/10/18 18:40

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

0

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

投稿2022/10/17 22:48

y_waiwai

総合スコア87784

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

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

Jikao

2022/10/18 18:42

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問