PythonではじめるWebスクレイピング(概要説明〜環境構築)

Python

今回はPythonを使ってWebスクレイピングを最短・最速で実践しましょう。

誤解を恐れず言いますが、超簡単です。というか超簡単だと思えるように私が噛み砕いて説明します。

タナイ
タナイ

ちょっとVBAが書ける程度の人ならサクッとスクレイピングモジュールが作れてしまいますよ。

想定読者

こんな方におすすめです。

  • プログラミングに多少の心得がある(VBAなど)
  • Pythonは初めて
  • 最速で試したいがコピペではなくコードを理解したい
  • このサイトで解説されているVBAスクレイピングだと機能に不足を感じる


完全初心者の方でも、ProgateのPython編をサクッとやったくらいで理解できると思います。

かくいう私もスクレイピングはVBAでやることが多かったのですが、IEのサポートを打ち切るサイトが増えてきたのでツールが豊富なPythonに移行しました。

タナイ
タナイ

今回の記事では全体のロードマップを示し、各論については随時記事を追加するという形で進めていきます。

もっとPythonそのものに本格的に取り組みたいならビデオ講座のUdemyは本当にオススメです。(Googleより給料の高いシリコンバレー企業で活躍するエンジニアが解説動画を出していたりします)

現役シリコンバレーエンジニアが教えるPython 3 入門 + 応用 +アメリカのシリコンバレー流コードスタイル

概要説明

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

“Learning Styles” by Marlene LeFever
タナイ
タナイ

いきなり脇道に逸れますが、人が学習するときのスタイルは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つ目のインストールを完了する項目のところまででいいです。

Pythonの開発環境を用意しよう!(Windows)
Progateはオンラインでプログラミングを学べるサービスです。プログラミングを学んでWEBアプリケーションを作ろう。

ちなみに、Progateのマニュアルをすっ飛ばしていきなりPowerShellpythonと入力するとWindowsストアに直結してインストールすることもできるようです……が、公式サイトでの配布版とは内容が若干異なっており安定しないとかなんとかあるようなので、とりあえず避けましょう。

Seleniumをインストールする

ProgateだとPython実行にcmd(コマンドプロンプト)を使ってますが、せっかくなら上位互換のPowerShellを使いましょう。

PowerShellの起動

Win+X → A → AltY

または、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機能を必ず提供するようにしましょう」と国際的に基準化されているということですね。

まとめると以下のようになります。

SeleniumによるWeb操作のイメージ

各言語(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+RnotepadEnterでメモ帳を開きましょう。エディタは後からでも入れられます。

もっと本格的に学びたい方は

動画で実際に講師がコードを書いている画面を見ながら学べる“Udemy”がオススメです。

現役シリコンバレーエンジニアが教えるPython 3 入門 + 応用 +アメリカのシリコンバレー流コードスタイル

コメント

タイトルとURLをコピーしました