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()

関連リンク集

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

目次OCRとはpython3でOCRを活用したい場面画像上の文字/数字をOCRで認識するWEB上の画像だってOCRで文字認識できるPyOCRとtesseractのインストール手順Windowsの場合LinuxやmacOSの場合tesseract-OCRをインストールするtesseract-OCRのパス(path)を通すPyOCRを用いて画像認識するサンプルコードWEB上の画像を文字起こししたい場合のサンプルコードChrome Driverとの組み合わせで実装する画像上の文字と同一の文字をフォームに入力する ...

ReadMore

トップ画像

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

目次スクレイピングは情報を「抽出」することクローリングはWEB上を「巡回」することpythonではクローリングを簡単に実装できるSelenium WebDriverを使ってクローリングするSelenium WebDriver(Chrome Driver)の導入手順1.Chromeのバージョンを確認する2.Chromeのバージョンと一致するChromeDriverをダウンロードする3.ダウンロードしたEXEファイルをフォルダに格納して環境変数を割り当てる4.Seleniumをインストール5.テストコードを作 ...

ReadMore

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

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

ReadMore

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

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

© 2020 with-Biz