(投稿:2018/09/20|更新:)
コンサルティング業務を行う企業でアルバイトをしていたことがあるのですが、その際Pythonプログラミングの業務を担当していました。
そのとき、Web上のデータを収集することになりまして。
やっているうちにWebスクレイピングのおもしろさに取り憑かれ、本を読んで勉強したり、個人的に競馬予測のためのデータを収集したりするようになりました。
ちなみに、『Pythonクローリング&スクレイピング -データ収集・解析のための実践開発ガイド-』(p. 3) において「クローリング」「スクレイピング」は以下のように定義されています。
クローリング
Webページのハイパーリンクをたどって次々にWebページをダウンロードする作業。
スクレイピング
ダウンロードしたWebページから必要な情報を抜き出す作業。
それから早2年ほど。
少し離れていましたが、改めてWebスクレイピングでできることをアウトプットしておきたいと思うようになりました。
そこで本記事では、本を読み、デモスクリプトを作成し、Qiitaに投稿した記事をまとめています。
スクレイピング生活の参考になれば幸いです。
目次
参考にした本2冊
スクレイピング・自動化関連のデモスクリプトの作成においては、主に以下の2冊を参考にしました。どちらも良書です。

退屈なことはPythonにやらせよう ―ノンプログラマーにもできる自動化処理プログラミング
- 作者: Al Sweigart,相川愛三
- 出版社/メーカー: オライリージャパン
- 発売日: 2017/06/03
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (6件) を見る
けっこう話題になった本です。書店で平積みになっているのを目にした方も多いのではないでしょうか。
汎用的な自動化手法が幅広く効率的に学べます。
できることの引き出しが広がりますね。内容もおもしろく、さくさく読み進められます。

Pythonクローリング&スクレイピング -データ収集・解析のための実践開発ガイド-
- 作者: 加藤耕太
- 出版社/メーカー: 技術評論社
- 発売日: 2016/12/16
- メディア: 大型本
- この商品を含むブログ (3件) を見る
「Pythonのスクレイピング・クローリングで良い本はないかな」と探していたところ、他の方のブログで推されていたので買いました。
自分でもやってみたくなるデモばかり。実践的な内容です。
※Mac・Linux環境を対象に書かれていますが、Windows環境の方向けにVirtualBoxとVagrantを用いたUbuntu仮想環境の構築手順が載っています。
また、仮想環境を構築しなくてもたいていの内容は実践できます。
スクレイピング・自動化関連のスキル
これらの本のおかげで以下のことができるようになりました。
- 基本的なスクレイピング(BeautifulSoup4)
- APIを利用したスクレイピング
- データベースへの保存(MongoDB)
- 得たデータの分析(pandas)
- JavaScriptを用いているサイトのスクレイピング(Selenium, PhantomJS)
- メール通知(smtplib)
- 定期的なプログラムの自動実行(タスクスケジューラ)
- 自動ログイン(Selenium, ChromeDriver)
基本的なところは押さえられたかなと。
あとは組み合わせ・アイデア次第です。何でも自動化できそうですよね。
デモスクリプトを掲載したQiita記事の紹介
それぞれのスキルについて、デモスクリプトを作成してQiitaにあげています。
記事を参考にしていただき、実際にスクリプトを実行してみると結構楽しいですよ。
自動的にメール通知が送られて来たときは感動しました。
【注意】
スクレイピング・クローリングは著作権周りのことに十分注意しましょう。
また、記事内のソースコードを参考に何かする際は自己責任でお願いします。
※参考
基本的なスクレイピング(BeautifulSoup4)
APIを利用したスクレイピング・データベースへの保存(MongoDB)・データ分析の一歩(pandas)
JavaScriptを用いたサイトのスクレイピング(Selenium, PhantomJS)
メール通知(smtplib)・定期的なプログラムの自動実行(タスクスケジューラ)
自動ログイン(Selenium, ChromeDriver)
さいごに
Webスクレイピングはプログラミングの強力さを手軽に実感できる素敵な技術です。
「プログラミングはやりたいけど、何をすればいいか分からない」というPython初心者の方が取り組むのにちょうど良いテーマでしょう。
何よりスクレイピングや自動化は楽しいです。
私も、今後ますます多様なデータの収集や自動化ができるように精進していきます。
(おしまい)
ソースコードはGithubにも上げています。
Qiita初投稿のときの記事です。
Kaggleについても書いています。
他にもプログラミングに関連した記事も書いています。
雑記ブログです。フリーランス、プログラミング、読書、ゲーム等、テーマは興味に任せてとっちらかっています。
読者登録して気にかけていただけるとめっちゃ喜びます!
ぜひともぜひとも!!