今回はPythonを使ってWebスクレイピングを最短・最速で実践しましょう。
誤解を恐れず言いますが、超簡単です。というか超簡単だと思えるように私が噛み砕いて説明します。

ちょっとVBAが書ける程度の人ならサクッとスクレイピングモジュールが作れてしまいますよ。
こんな方におすすめです。
- プログラミングに多少の心得がある(VBAなど)
- Pythonは初めて
- 最速で試したいがコピペではなくコードを理解したい
- このサイトで解説されているVBAスクレイピングだと機能に不足を感じる
完全初心者の方でも、ProgateのPython編をサクッとやったくらいで理解できると思います。
かくいう私もスクレイピングはVBAでやることが多かったのですが、IEのサポートを打ち切るサイトが増えてきたのでツールが豊富なPythonに移行しました。



今回の記事では全体のロードマップを示し、各論については随時記事を追加するという形で進めていきます。
もっとPythonそのものに本格的に取り組みたいならビデオ講座のUdemyは本当にオススメです。(Googleより給料の高いシリコンバレー企業で活躍するエンジニアが解説動画を出していたりします)
概要説明



最初に関連語句の説明をしますが、ゴタクはいいから手順を知りたいというHowタイプの人は次の環境構築のセクションまで飛ばしていいです。






いきなり脇道に逸れますが、人が学習するときのスタイルは4つに類型できるとされており、生涯を通じて最も得意とする学習スタイルはあまり変化しないとされています。
スクレイピングの種類
今回のPythonスクレイピングでは、Seleniumというブラウザ操作ツールを使用します。いわゆるブラウザ操作系のスクレイピングになります。
あくまで人間がやるブラウザの操作を自動化してやるようなイメージなので、初心者にも分かりやすいのが利点です。他にはブラウザを介さずに直接サーバーにリクエストを送信したり、提供されているAPIを利用するタイプのスクレイピングもありますが、初心者にはちょっと難しいので後回しにしましょう。



スクレイピングには、
- ブラウザ操作系
- リクエスト系
- API系
の大きく分けて3種類あります。
Pythonの概要
PythonはYouTubeを実装するのにも使われているナウなヤング(死語)に大流行のプログラミング言語です。
文法も簡単で、学習コストが低いと言われています。実際、今回紹介するスクレイピングをするくらいなら多少プログラミングの心得があればすぐ書けるでしょう。
インタプリタ言語なので、当サイトの読者に多いであろうVBAerにもとっつきやすいと思います(VBAは厳密にはインタプリタではありませんが……)。
そして、インタプリタであるがゆえに対話型の環境で実行できるというのが非常にスクレイピングと相性がいいです。クリックなどのイベントごとにページ遷移を確認しながら作業ができます。
インタプリタとは?



急にインタプリタとか言われても分かりませぬぞ……
そういう方のために、インタプリタを最速でざっくり理解するためのショート記事を書いたので気になる方は参照してください。
Seleniumの概要
Seleniumは、ChromeやFirefoxなどのブラウザをプログラムから操作するためのツールです。Pythonに限らず、様々な言語で使用できるように展開されています。
現在のSeleniumは、第3世代でブラウザ操作に特化しています。元々は他にもいろいろあったようですが、覚えなくて構いません。



大事なのは、Seleniumはブラウザを操作するためにあると理解することです。
そして、SeleniumはクロスプラットフォームなのでWindowsでもMacでもLinuxでも使えます。同じくクロスプラットフォームであるPythonと相性がいいです。
つまり一度作ってしまえば、どんな環境でもいけちゃう嬉しさがあります。自分のように、WinとMacを両方使っている人間にはかなりありがたいです。



VBAをMac環境で縛りプレイするのはもう嫌じゃ……
環境を構築する



今回は、VBAerを想定してWindowsで説明します。Macでの環境構築は追ってサイトに追加したいと思います。
Pythonをインストールする
実行環境をバージョン管理したいとか考えはじめると初っぱなから沼になるので、まずは兎にも角にもPythonの.pyが実行できる環境を作りましょう。
Progateに素晴らしい解説があるので、それに従ってインストールしてください。3つ項目がありますが、1つ目のインストールを完了する項目のところまででいいです。



ちなみに、Progateのマニュアルをすっ飛ばしていきなりPowerShellにpython
と入力するとWindowsストアに直結してインストールすることもできるようです……が、公式サイトでの配布版とは内容が若干異なっており安定しないとかなんとかあるようなので、とりあえず避けましょう。
Seleniumをインストールする
ProgateだとPython実行にcmd(コマンドプロンプト)を使ってますが、せっかくなら上位互換のPowerShellを使いましょう。
Win+X → A → Alt+Y
または、Winキーを右クリック → Windows PowerShell (管理者)(A)を選択



こういうのは極力キーボードショートカットを使う癖をつけるといいと思います。
PowerShellが開いたら、Seleniumをインストールします。下記の通り打ち込んでください(“> ”はPowerShellコマンドであることを示しているだけなので不要です)。
> pip install selenium



ここで、pipは”Pip Intalls Package“の略で、再帰的な表現になっています(pip公式)。分かりにくい表現ですが、パッケージ(ライブラリ)をインストールするためのコマンドなんだということが分かればOKです。
ライブラリとは?
pipを使うと、PyPI(Python Package Index)という“サードパーティ製のライブラリがたくさん登録されているところ”から好きなライブラリをインストールできます。
ライブラリという概念がいまいちピンとこない人はこちらの記事でざっくり理解しましょう。
WebDriverをインストールする
SeleniumがGoogle Chromeなどのブラウザを操作するために必要なパッケージです。
以前のSeleniumは、取得したいWebページのソースに対し中継サーバーからJavaScriptを仕込んで操作するという手法を取っていましたが、セキュリティ上の問題などで不都合が生じてきました。
そこで登場したのがWebDriverというブラウザをネイティブ側から操作するツールです。ネイティブ側から操作するというと分かりにくいですが、人がブラウザを操作したのと同じ扱いでWebページを操作できるということです。
WebDriverは2018年6月5日にW3C勧告に到達しています。W3CとはWeb界でのJIS規格のようなものです。つまり、「ブラウザは原則としてWebDriver機能を必ず提供するようにしましょう」と国際的に基準化されているということですね。
まとめると以下のようになります。
各言語(Python等):Seleniumに操作を指示する
↓↑
Selenium:指示をWebDriverに渡せる形に変換する
↓↑
WebDriver:指示をブラウザが理解できる形に変換する
↓↑
ブラウザ(Chrome等):サーバーに要求を送信する・Webページを表示する
↓↑
サーバー:ブラウザから要求を受け取る・データを送る



WebDriverはブラウザごと、バージョンごとに異なりますので、自分の使用するブラウザに対応するものを使用する必要があります。
対応するWebDriverを自動でインストールする
ネットを調べると“今使っているChromeのバージョンを調べ、そのバージョンに対応するWebDriverをインストールする方法”が上位に出てきますが、そんな面倒なことをやるほど人間はヒマではありません。
都度キャッシュにインストールされることにはなりますが、自動で適合するWebDriverをインストールしてくれるライブラリがありますのでそちらを使うのがスマートかと思います。
> pip install webdriver_manager
これで環境構築は完了です。



Pythonをインストールしてからたったの2行コマンドを打ち込むだけでスクレイピング環境が整いました。素晴らしいですね。
エディタを選定する



最後にエディタを決めてしまいましょう。エディタも環境構築と言ってしまえばそうなのですが、必須ではないので別建にしています。



まだあるの?ってかエディタって何よ?
エディタとは、プログラムを書くテキストエディタのことです。
VBAをやっている人はExcelのVBE(Visual Basic Editor)を使うので、プログラムにはそのプログラム用の入力場所があるように思ってしまいますが、本来、別のものです。
あくまでプログラムはただの文字列ですので、自分の好きなエディタを使うことができます。つまり、Windowsのメモ帳だけでもPythonは書けますし、スクレイピングもできます。
ただ、あまりにも不便なのでメジャーどころのエディタを入れておきましょう。有名なものにVisual Studio Code(VSCode)やAtomがあります。



私は、VSCodeを使っています
VSCodeの使い方については、また別の記事にまとめます。早く試したい人は、とりあえずWin+R→notepad→Enterでメモ帳を開きましょう。エディタは後からでも入れられます。
動画で実際に講師がコードを書いている画面を見ながら学べる“Udemy”がオススメです。
コメント