こここブログ

VR・AR・MR(XR)、Python、IT・テック系、仮想通貨・ブロックチェーンなど。Pythonで機械学習やWeb開発。VRエンジニアになりたくてUnity触ってます。

【Python】Webスクレイピング周りのスキルセットとデモスクリプトまとめ【Qiita投稿】

(投稿:2018/09/20|更新:

f:id:kokokocococo555:20180920233447j:plain

コンサルティング業務を行う企業でアルバイトをしていたことがあるのですが、その際Pythonプログラミングの業務を担当していました。

そのとき、Web上のデータを収集することになりまして。

やっているうちにWebスクレイピングのおもしろさに取り憑かれ、本を読んで勉強したり、個人的に競馬予測のためのデータを収集したりするようになりました。

PythonによるWebスクレイピング

PythonによるWebスクレイピング

 

ちなみに、『Pythonクローリング&スクレイピング -データ収集・解析のための実践開発ガイド-』(p. 3) において「クローリング」「スクレイピング」は以下のように定義されています。

クローリング

Webページのハイパーリンクをたどって次々にWebページをダウンロードする作業。

スクレイピング

ダウンロードしたWebページから必要な情報を抜き出す作業。

それから早2年ほど。

少し離れていましたが、改めてWebスクレイピングでできることをアウトプットしておきたいと思うようになりました。

そこで本記事では、本を読み、デモスクリプトを作成し、Qiitaに投稿した記事をまとめています。

スクレイピング生活の参考になれば幸いです。

【宣伝】

現在、フリーランスのエンジニア活動を行っています。

Web上からのデータ収集のアウトソーシング依頼、お待ちしています。ぜひご相談ください。

>> お問い合わせフォーム

目次

参考にした本2冊

スクレイピング・自動化関連のデモスクリプトの作成においては、主に以下の2冊を参考にしました。どちらも良書です。

 

退屈なことはPythonにやらせよう ―ノンプログラマーにもできる自動化処理プログラミング

退屈なことはPythonにやらせよう ―ノンプログラマーにもできる自動化処理プログラミング

 

けっこう話題になった本です。書店で平積みになっているのを目にした方も多いのではないでしょうか。

汎用的な自動化手法が幅広く効率的に学べます

できることの引き出しが広がりますね。内容もおもしろく、さくさく読み進められます。

 

Pythonクローリング&スクレイピング -データ収集・解析のための実践開発ガイド-

Pythonクローリング&スクレイピング -データ収集・解析のための実践開発ガイド-

 

「Pythonのスクレイピング・クローリングで良い本はないかな」と探していたところ、他の方のブログで推されていたので買いました。

自分でもやってみたくなるデモばか実践的な内容です。

※Mac・Linux環境を対象に書かれていますが、Windows環境の方向けにVirtualBoxとVagrantを用いたUbuntu仮想環境の構築手順が載っています。
また、仮想環境を構築しなくてもたいていの内容は実践できます。

スクレイピング・自動化関連のスキル

これらの本のおかげで以下のことができるようになりました。

  • 基本的なスクレイピング(BeautifulSoup4)
  • APIを利用したスクレイピング
  • データベースへの保存(MongoDB)
  • 得たデータの分析(pandas)
  • JavaScriptを用いているサイトのスクレイピング(Selenium, PhantomJS)
  • メール通知(smtplib)
  • 定期的なプログラムの自動実行(タスクスケジューラ)
  • 自動ログイン(Selenium, ChromeDriver)

基本的なところは押さえられたかなと

あとは組み合わせ・アイデア次第です。何でも自動化できそうですよね。

デモスクリプトを掲載したQiita記事の紹介

それぞれのスキルについて、デモスクリプトを作成してQiitaにあげています。

記事を参考にしていただき、実際にスクリプトを実行してみると結構楽しいですよ。

自動的にメール通知が送られて来たときは感動しました。

【注意】

スクレイピング・クローリングは著作権周りのことに十分注意しましょう。
また、記事内のソースコードを参考に何かする際は自己責任でお願いします。

※参考

基本的なスクレイピング(BeautifulSoup4)

qiita.com

APIを利用したスクレイピング・データベースへの保存(MongoDB)・データ分析の一歩(pandas)

qiita.com

JavaScriptを用いたサイトのスクレイピング(Selenium, PhantomJS)

qiita.com

メール通知(smtplib)・定期的なプログラムの自動実行(タスクスケジューラ)

qiita.com

自動ログイン(Selenium, ChromeDriver)

qiita.com

さいごに

Webスクレイピングはプログラミングの強力さを手軽に実感できる素敵な技術です。

「プログラミングはやりたいけど、何をすればいいか分からない」というPython初心者の方が取り組むのにちょうど良いテーマでしょう。

何よりスクレイピングや自動化は楽しいです。

私も、今後ますます多様なデータの収集や自動化ができるように精進していきます。

(おしまい)

ソースコードはGithubにも上げています。

github.com

他の記事のご紹介

Qiita初投稿のときの記事です。

www.kokokocococo555.com

Kaggleについても書いています。

www.kokokocococo555.com

他にもプログラミングに関連した記事も書いています。

www.kokokocococo555.com

「こここブログ」について

雑記ブログです。フリーランス、プログラミング、読書、ゲーム等、テーマは興味に任せてとっちらかっています。

読者登録して気にかけていただけるとめっちゃ喜びます!
ぜひともぜひとも!!