Python ビジネス関連

pyhon3でWEBクローリングするならSelenium WebDriverを活用しよう(導入手順と使い方)

スクレイピングは情報を「抽出」すること

スクレイピングとは「何らかのデータ構造から抽出すること」を指します。

簡単に言うと「プログラム間でやり取りされるデータ」の中から、人が読める内容を抽出することです。

データスクレイピングのうち、WEB上の情報に絞ったものを「WEBスクレイピング」といいます。



クローリングはWEB上を「巡回」すること

クローリングは「WEB上をプログラミングで巡回すること」を指します。

WEB上を巡回する上で何をするかは、クローリングの目的次第ですが、多くの場合は情報収集のために実行されています。
つまり、クローリング=WEB上を巡回して情報を収集することとして扱われます。

pythonではクローリングを簡単に実装できる

クローリングツールを作成するための言語は多く存在していますが、中でもpythonがオススメです。

少しでもプログラミングをしたことがある方であれば、pythonは非常に簡単にやりたいことが実装できます。



Selenium WebDriverを使ってクローリングする

一番手っ取り早い方法です。

Selenium WebDriverを使えるようにするための手順を以下に記します。

Selenium WebDriver(Chrome Driver)の導入手順

1.Chromeのバージョンを確認する

Chromeを立ち上げ、画面右上の三点を押し、「ヘルプ」→「Google Chromeについて」をクリック。

ここに記載されているバージョンを記録しておいてください。

2.Chromeのバージョンと一致するChromeDriverをダウンロードする

ChromeDriverはChromeのバージョンと一致したものでないと動作しません。

必ずバージョンの一致したChromeDriverをダウンロードしましょう。

chromedriverのインストーラー

Windowsのインストーラーを選択

3.ダウンロードしたEXEファイルをフォルダに格納して環境変数を割り当てる

Windowsの場合、画面左下の検索窓に「環境変数」と入力すると「システム環境変数の編集」が表示されます。

環境変数の設定

黄色い下線を引いた「環境変数」をクリックし、「Path」を選択して「編集」をクリック。

「新規」を押して「ChromeDriver.exe」を保存したフォルダを入力して「OK」を押してください。

4.Seleniumをインストール

WindowsもMacも以下のコマンドを入力してSeleniumをインストールしてください。

pip install selenium

5.テストコードを作成する

from selenium import webdriver

driver = webdriver.Chrome() # 環境変数を設定しない場合はEXEファイルのパスを引数に指定してください
driver.get('https://www.google.com/')

6.テストコードを実行する

python test.py


いろいろなサンプルコード

非headlessモードでテストしてみる

サンプルコードの動き

  1. Chrome が立ち上がり、5秒後に ChromeDriver という文字列でGoogle検索が行われます。(Chromeのウィンドウには「Chrome は自動テスト ソフトウェアによって制御されています。」と表示されます。)
  2. さらに5秒経つと自動で閉じます。
import time
from selenium import webdriver

driver = webdriver.Chrome()
driver.get('https://www.google.com/')
time.sleep(5)
search_box = driver.find_element_by_name("q")
search_box.send_keys('ChromeDriver')
search_box.submit()
time.sleep(5)
driver.quit()

headless モードのテストをしてみる

driver = webdriver.Chrome() のあたりを以下のように変更します。

ブラウザが表示されなくなり、動いているかわからないため、途中でウェブページのタイトルを表示しつつ、スクリーンショットをとってみます。

from selenium import webdriver

options = webdriver.ChromeOptions()
options.add_argument('--headless')
driver = webdriver.Chrome(options=options)

driver.get('https://www.google.com/')
print(driver.title)

search_box = driver.find_element_by_name("q")
search_box.send_keys('ChromeDriver')
search_box.submit()
print(driver.title)

driver.save_screenshot('search_results.png')
driver.quit()

関連リンク集

「ReCaptcha V2」を突破する!2Captchaで挑む完全自動化

スクレイピングやブラウザ操作の自動化タスクにおいて、一番の難所は何といっても各種キャプチャの突破です。 そもそもキャプチャ機能はロボット操作されないために設置するため、それを突破しようとする時点で「?」ではありますが、それでもなんとかしたい場合の解決方法として「2Captcha」というサービスがあります。 実はこのサービスを使うと、サクッとキャプチャ突破できます。早速紹介したいと思います。 ※利用は自己責任でお願いいたします。悪用厳禁です。 2Captchaについて ロシアの会社が提供するキャプチャ機能を ...

ReadMore

python3でPyOCRを使って画像を文字列に変換する方法

OCRとは OCRとはOptical Character Recognition/Readerの略で、オーシーアールと読みます。光学的文字認識とも呼ばれ、手書きされた文字や印刷された文字など、画像やPDF上の文字を読み取り、文字コードに変換する技術です。 python3でOCRを活用したい場面 OCRを活用するのにはいろいろな用途があると思います。 画像上の文字/数字をOCRで認識する 画像上の文字や数字を認識したいケースに活用できます。 今回は、この点に関してサンプルを作成したいと思います。 WEB上の ...

ReadMore

トップ画像

pyhon3でWEBクローリングするならSelenium WebDriverを活用しよう(導入手順と使い方)

スクレイピングは情報を「抽出」すること スクレイピングとは「何らかのデータ構造から抽出すること」を指します。 簡単に言うと「プログラム間でやり取りされるデータ」の中から、人が読める内容を抽出することです。 データスクレイピングのうち、WEB上の情報に絞ったものを「WEBスクレイピング」といいます。 クローリングはWEB上を「巡回」すること クローリングは「WEB上をプログラミングで巡回すること」を指します。 WEB上を巡回する上で何をするかは、クローリングの目的次第ですが、多くの場合は情報収集のために実行 ...

ReadMore

Python3でgmailからメールを送る方法(ファイル添付あり)

AIの分野で注目のPython(パイソン)ですが、とても便利な言語で、いろいろなことができちゃいます。ぼくは、クローリングツールを作る兼ね合いでPythonと出会い、クローリングツールの他に自動メール送信ツール、ビットコイン自動売買ツールなど、いろいろな物を試作しました。 その中で、gmailでファイル添付してメールを送信する仕組みが、調べた通りでできなかったため、自分なりに修正した物でを公開したいと思いました。 そのまま使えるはずですが、もしうまくいかない場合はご連絡ください。 Python3を使ってg ...

ReadMore

1日1ポチお願いいたします!
人気ブログランキング

-Python, ビジネス関連
-, ,

© 2024 with-Biz