GoogleScraperはオープンソースツールであり、将来的にはオープンソースツールのままです。
また、GoogleScraperの近代的な後継者であるGeneral目的のクロールインフラストラクチャは、オープンソースと無料のままです。
ただし、一部の人々は、Googleや他の検索エンジンからデータをこすり付けるサービスをすぐに持ちたいと思うでしょう。このため、Web Service Scharapeulourual.comを作成しました。
最後の状態: 2019年2月
GoogleScraperの後継者はここにあります
これは、私がもうこのプロジェクトを維持しないことを意味します。すべての新しい開発は、上記のプロジェクトで行われます。
私がこのプロジェクトに多くの努力をし続けない理由はいくつかあります。
このため、私はhttps://www.npmjs.com/package/se-scraperという名前のスクレイピングライブラリの開発を続け、操り人形師の上で実行されます。
ここからアプリをダウンロードできます:https://www.npmjs.com/package/se-scraper
幅広い異なる検索エンジンをサポートし、GoogleScraperよりもはるかに効率的です。また、コードベースは、スレッド/キューイングや複雑なロギング機能なしでははるかに複雑ではありません。
質問については、私のwegpageで私に連絡して、そこにメールを書くことができます。
このプロジェクトは、2年間の放棄の後、生き返ることに戻りました。今後数週間で、すべての機能を最新の開発に更新するのに時間がかかります。これには、すべての正規表現と検索エンジンの動作の変化の更新が含まれます。数週間後、このプロジェクトがここに記載されているように再び機能することを期待できます。
GoogleScraperはPython 3に書かれています。少なくともPython 3.6をインストールする必要があります。最後の主要な開発はすべて、Python 3.7で行われました。したがって、たとえばUbuntu 16.04とPython 3.7を使用する場合は、公式パッケージからPython 3をインストールしてください。私はAnaconda Pythonディストリビューションを使用しています。
さらに、ChromeブラウザとSeleniumモード用のChromedriverもインストールする必要があります。または、Seleniumモード用のFirefoxブラウザとGeckodriverをインストールします。以下の手順を参照してください。
GoogleScraperをPIPで快適にインストールすることもできます。
virtualenv --python python3 env
source env/bin/activate
pip install GoogleScraper
今(2018年9月)これは落胆しています。最新のGithubソースからインストールしてください。
時々、最新で最も素晴らしいものがチーズショップで利用できないことがあります(それは彼らがhttps://pypi.python.org/pypi/pipと呼ぶ方法です)。したがって、このGitHubリポジトリにある最新のソースからGoogleScraperをインストールすることをお勧めします。あなたはこのようにそうすることができます:
virtualenv --python python3 env
source env/bin/activate
pip install git+git://github.com/NikolaiT/GoogleScraper/
いくつかの機能と例は、予想どおりに機能しない場合があることに注意してください。また、アプリが実行されることさえ保証しません。 PIPからインストールすると使用可能なバージョンが得られることを保証します(少なくともある程度)。
ここから最新のChromedriverをダウンロードしてください:https://sites.google.com/a/chromium.org/chromedriver/downloads
ドライバーを解凍してどこかに保存してから、GoogleScraper構成ファイルのchromedriver_pathを更新しますscrape_config.pyドライバーchromedriver_path = 'Drivers/chromedriver'を保存したパス
ここから最新のGeckodriverをダウンロードしてください:https://github.com/mozilla/geckodriver/releases
ドライバーを解凍してどこかに保存してから、 geckodriver_pathをGoogleScraper構成ファイルscrape_config.pyで更新しますgeckodriver_path = 'Drivers/geckodriver'
GoogleScraper構成ファイルscrape_config.pyの次の設定を値に更新します。
# chrome driver executable path
# get chrome drivers here: https://chromedriver.storage.googleapis.com/index.html?path=2.41/
chromedriver_path = 'Drivers/chromedriver'
# geckodriver executable path
# get gecko drivers here: https://github.com/mozilla/geckodriver/releases
geckodriver_path = 'Drivers/geckodriver'
# path to firefox binary
firefox_binary_path = '/home/nikolai/firefox/firefox'
# path to chromium browser binary
chrome_binary_path = '/usr/bin/chromium-browser'
上記のようにインストールします。 SeleniumモードでGoogleScraperを使用する場合は、Chrome/Firefox用のセレンドライバーがあることを確認してください。
すべてのオプションを参照してください
GoogleScraper -h
HTTPモードで「Apple」という単一のキーワードをスクレイプします。
GoogleScraper -m http --keyword "apple" -v info
ヘッドレスモードでChromeを使用して、ファイルSearchData/5wordsをスクレイプします。
GoogleScraper -m selenium --sel-browser chrome --browser-mode headless --keyword-file SearchData/5words -v info
入っているすべてのキーワードをこすります
GoogleScraper -m http --keyword-file SearchData/some_words.txt --num-workers 5 --search-engines "bing,yahoo" --output-filename threaded-results.json -v debug
Googleでキーワード「K2 Mountain」を画像検索します:
GoogleScraper -s "google" -q "K2 mountain" -t image -v info
これはおそらくGoogleScraperの最も素晴らしい機能です。どちらかが
非同期モードの例:
キーワードファイルSearchData/Marketing-Models-Brands.txtでキーワードを検索します。デフォルトでは、非同期モードが同時に100のリクエストを生成します。これは、1秒あたり約100のリクエストを意味します(実際の接続に依存します...)。
GoogleScraper -s "bing,yahoo" --keyword-file SearchData/marketing-models-brands.txt -m http-async -v info -o marketing.json
結果(1つのIPアドレスにはキーワードが多すぎたため、部分的な結果)は、ファイルの出力/Marketing.jsonで検査できます。
GoogleScraperは非常に複雑です。 GoogleScraperは多くの検索エンジンをサポートしており、これらの検索プロバイダーのHTMLとJavaScriptが頻繁に変更されるため、GoogleScraperが検索エンジンの機能を停止することがよくあります。これを見つけるために、機能テストを実行できます。
たとえば、以下のテストでは、GoogleとBingのスクレイピングセッションを実行し、収集されたデータが多かれ少なかれ大丈夫に見えるというテストが実行されます。
python -m pytest Tests/functional_tests.py::GoogleScraperMinimalFunctionalTestCase
GoogleScraperは、Google Search Engineの結果(および他の多くの検索エンジン_ )を簡単かつ速い方法で分析します。これにより、見つかったすべてのリンクとそのタイトルと説明をプログラム的に抽出することができます。これにより、スクレイプされたデータをさらに処理できます。
無制限の使用シナリオがあります:
まず、GoogleScraperが2つのまったく異なるスクレイピングアプローチを使用していることを理解する必要があります。
urllib.requestやrequestsモジュールなどの低レベルのHTTPライブラリで削る。これは、実際のブラウザから送信されたHTTPパケットをシミュレートします。前者のアプローチが最初に実装されましたが、検索エンジンにはそれを検出する簡単な方法がないため、後のアプローチは比較してはるかに有望に見えます。
GoogleScraperは、次の手法/ソフトウェアで実装されています。
現在、次の検索エンジンがサポートされています。
スクレイピングは重要で非常に複雑なテーマです。 Googleやその他の検索エンジンの巨人は、スクレーパーをできるだけ苦労させる強い傾向があります。検索エンジンプロバイダーがロボットが検索エンジンを使用していることを検出する方法はいくつかあります。
したがって、取り組む最大のハードルは、JavaScript検出アルゴリズムです。 GoogleがJavaScriptで何をしているのかはわかりませんが、すぐにさらに調査し、戦略を変更する方が良いかどうかを判断し、JavaScriptを実行できるブラウザーのような環境でブラウザをシミュレートすることでスクレイプするアプローチに切り替えるかどうかを判断します。これらの各仮想ブラウザーのネットワークは、実際の物理ユーザーエージェントのように動作するように、操作および操作されます。リソースをあまり強調することなく、20のこのようなブラウザセッションを並行して処理することが可能である必要があると確信しています。本当の問題は、いつものように良いプロキシの欠如です...
上記のように、 urllib.requestまたはrequestsモジュールでスクレイピングし、自分でネットワークを行うときに、いくつかの欠点があります。
ブラウザは非常に複雑なソフトウェアシステムです。 Chromeには、約800万ラインのコードとFirefoxが10 locです。大企業はテクノロジーを前進させるために多額のお金を投資し(HTML5、CSS3、新しい標準)、各ブラウザは独自の動作をしています。したがって、HTTPリクエストでこのようなブラウザを手動でシミュレートすることはほとんど不可能です。これは、Googleが閲覧使用の異常と矛盾を検出する多くの方法を持っていることを意味します。 JavaScriptの動的な性質だけでは、検出されずに削ることが不可能になります。
これは、Pythonで実際のブラウザを自動化する代替アプローチを叫びます。 Googleには自分のネイティブブラウザの機能を制限するインセンティブが最も少ないため、Chromeブラウザを制御するのが最善です。したがって、PythonでChromeを自動化し、異なるプロキシセットを使用していくつかの独立したインスタンスを制御する方法が必要です。その後、結果の出力は、使用済みプロキシの数で直線的に成長します...
そうするためのいくつかの興味深いテクノロジー/ソフトウェア:
おそらく、GoogleScraperを使用する最良の方法は、コマンドラインからそれを使用して、次のようなコマンドを発射することです。
GoogleScraper --keyword-file /tmp/keywords --search-engine bing --num-pages-for-keyword 3 --scrape-method selenium
ここで、 SELはスクレイピングモードを「セレン」としてマークします。これは、GoogleScraper.pyの擦り傷を意味します。これは非常に強力です。これは、長くこすり、多くのサイトを削ることができるためです(Googleには実際のブラウザをブロックするのに苦労しています)。フラグの引数--keyword-file NewLinesによって区切られたキーワードを備えたファイルでなければなりません。 SO:すべてのGoogleクエリ1行。簡単ですね?
さらに、オプション--num-pages-for-keyword GoogleScraperが各キーワードに3つの連続したページを取得することを意味します。
例キーワードファイル:
keyword number one
how to become a good rapper
inurl:"index.php?sl=43"
filetype:.cfg
allintext:"You have a Mysql Error in your"
intitle:"admin config"
Best brothels in atlanta
スクレイピング後、同じディレクトリに名前付きgoogle_scraper.dbに新しいSQLite3データベースが自動的にあります。コマンドでデータベースを開いて検査できます。
GoogleScraper --shell
2時間で10'000のキーワードをこすり落とすことは問題ではないはずです。本当にクレイジーな場合は、構成内の最大ブラウザを少し(スクリプトファイルの上部)に設定します。
必要に応じて、フラグ--proxy-fileを指定できます。引数として、プロキシと次の形式を使用してファイルを渡す必要があります。
protocol proxyhost:proxyport username:password
(...)
例:
socks5 127.0.0.1:1080 blabla:12345
socks4 77.66.55.44:9999 elite:js@fkVA3(Va3)
googleScraper.pyをHTTPモードで使用する場合(つまり、生のHTTPヘッダーが送信されることを意味します)、次のように使用します。
GoogleScraper -m http -p 1 -n 25 -q "white light"
あなたが私に連絡したいと思ったら、そうして私にメールを送ってください。あなたは私のブログで私の連絡先情報を見つけることができます。