今日はWebスクレイピングについて学んでいきたいと思います!
Webスクレイピングとはネットにある情報を自動で収集する技術のことです。
例えば海の画像がたくさん欲しいとなったときにその画像を集めるにはどうしましょう?
普通だったらGoogleで「海 画像」と検索して出てきた画像を右クリックして、名前をつけて保存、そして次の画像へ。。。。。
と途方もなく地味な作業をしなければならないですよね。
それを全部自動でやってしまおうというのがWebスクレイピングです!

地味でめんどくさいことは全部Pythonでやってしまおう!!
seleniumを使ったWebスクレイピング
Webスクレイピングをするときに一番オススメであがってくるのはおそらく「Requests」や「Beautiful Soup」といったライブラリだと思います。
これらも大変便利なライブラリなのですが、これらは直接サイトにアクセスしてそこからデータを集める手段として使われる事が多いです。
このほうが速くて一気にデータが集められるのですが、ログイン必須のサイトなどではブラウザ経由でのログインしかできなかったり、ログインできてもスパム扱いで凍結、最悪の場合アカウント停止などもおうおうとしてあるらしいです。。
そこで最近注目の(?)「selenium」の出番です!(もう有名すぎですけどって突っ込まれますね)
こちらは実際にブラウザのChromeを操作してWebサイトに訪問して、あたかも人間が操作してるように見せかけてネットサーフィンが自由にできてしまうといったものです!(少し語弊があるかもですが。。)

ブラウザで操作するから相手もロボットがサイトに来てるってわからないんだね!
なんかずっこいね 笑
seleniumのインストール
わたしはAnaconda環境にインストールしました。
Anaconda環境だと仮想環境がいっぱい作れてもし失敗してもイチからやり直せるのがいいですよね。
Anaconda Nabigatorを立ち上げて新しく「selenium」という環境を作りましょう。
Pythonバージョンは3.6としました。

環境が作れたら次は、Not installedをせんたくのうえ検索窓に「selenium」と入力して「selenium」を選択してApplyしましょう。

すると優秀なAnacondaさんが必要なモジュールを一緒にインストールするように推奨してくれるので従いましょう。

一瞬でインストール完了しましたね!
Webドライバーのダウンロード
続いてseleniumに使うWebドライバーであるChromeドライバーをダウンロードしましょう。
まずはGoogle Chromeをお持ちでない方はこちらからインストールしましょう。
すでにお持ちの方もChromeのバージョンを確認しましょう。

私のChromeのバージョンは「86.0.4240.183」でした。
そしてこのバージョンに合ったChrome Driverをこちらからダウンロードしましょう。

何故かWindowsが32bitになっていますがWin32をダウンロードして、作業フォルダに解凍しましょう。わたしはドキュメントにseleniumという作業フォルダを作ってそこに解凍しました。

Chrome Driverをパスに設定
ダウンロードしたChrome Driverをシステム環境設定のPathに登録しましょう。
「環境変数を編集」を開いてPathにダウンロードしたChrome Driverのパスを追加しましょう。
わたしの場合はドキュメントのseleniumフォルダにダウンロードしたので「C:\Users\user\Documents\selenium\chromedriver.exe」を追加しました。

なぜかシステム環境変数が編集できないときはコマンドプロンプトを右クリックで管理者として実行してから以下のコマンドを実行してみてください。
Start C:\Windows\system32\rundll32.exe sysdm.cpl, EditEnvironmentVariables
seleniumを実行
ではここまで出来れば早速実行して見ましょう。
コマンドプロンプトを立ち上げて先程用意したPythonの環境seleniumをアクティベートしましょう。
C:\Users\user\Documents\selenium>conda activate selenium
そして以下のコードをPythonファイルに書き込み実行しましょう。
from selenium import webdriver
chrome = webdriver.Chrome()
chrome.get('https://www.selenium.dev/')
すると以下のようにChromeブラウザが立ち上がりました!

これで一旦seleniumを使ってブラウザアクセスまで完了しました。
次はブラウザにアクセスして実際に動作をさせてみようと思います。
ではまた。
コメント