Webサイトから効率よくデータ収集をしたい!
と思われる方は多いかと思います。
毎日、多くのサイトをチェックするのは大変ですよね。
この作業を「自動化」できたら、ラクですよね!
それを実現するのが、「クローリング」や「スクレイピング」という技術です。
興味のあるWebサイトを自動的に収集し(クローリング)、その中から必要な情報を抽出する(スクレイピング)するテクニックのことです。
本記事では、クローリングやスクレイピングを、学びやすいプログラミング言語「Python(パイソン)」で実現するためのノウハウを学べる1冊をご紹介します↓
こちら増補改訂版が出ています↓
本記事の概要
本書の目次は以下の通りです
はじめに
第1章 クローリング・スクレイピングとは何か
1-1、本書が扱う領域
1-2、Wgetによるクローリング
1-3、Unixコマンドによるスクレイピング
1-4、gihyo.jpのスクレイピング
1-5、まとめ
第2章 Pythonではじめるクローリング・スクレイピング
2-1、Pythonを使うメリット
2-2、Pythonのインストールと実行
2-3、Pythonの基礎知識
2-4、Webページを取得する
2-5、Webページからデータを抜き出す
2-6、データを保存する
2-7、Pythonによるスクレイピングの流れ
2-8、まとめ
第3章 強力なライブラリの活用
3-1、ライブラリのインストール
3-2、Webページを簡単に取得する
3-3、HTMLのスクレイピング
3-4、RSSのスクレイピング
3-5、データベースに保存する
3-6、クローラーとURL
3-7、Pythonによるクローラーの作成
3-8、まとめ
第4章 実用のためのメソッド
4-1、クローラーの分類
4-2、クローラー作成にあたっての注意
4-3、繰り返しの実行を前提とした設計
4-4、クロール先の変化に対応する
4-5、まとめ
第5章 クローリング・スクレイピングの実践とデータの活用
5-1、データセットの取得と活用
5-2、APIによるデータの収集と活用
5-3、時系列データの収集と活用
5-4、オープンデータの収集と活用
5-5、Webページの自動操作
5-6、JavaScriptを使ったページのスクレイピング
5-7、取得したデータの活用
5-8、まとめ
第6章 フレームワーク Scrapy
6-1、Scrapyの概要
6-2、Spiderの作成と実行
6-3、実践的なクローリング
6-4、抜き出したデータの処理
6-5、Scrapy の設定
6-6、Scrapy の拡張
6-7、クローリングによるデータの収集と活用
6-8、画像の収集と活用
6-9、まとめ
第7章 クローラーの継続的な運用・管理
7-1、クローラーをサーバーで動かす
7-2、クローラーの定期的な実行
7-3、クローリングとスクレイピングの分離
7-4、クローリングの高速化・非同期化
7-5、クラウドを活用する
7-6、まとめ
Appendix Vagrantによる開発環境の構築
A1、VirtualBoxとVagrant
A2、CPUの仮想化支援機能を有効にする
A3、VirtualBoxのインストール
A4、Vagrantのインストール
A5、仮想マシンを起動する
A6、ゲストOSにSSH接続する
A7、Linuxの基本操作
A8、Vagrantで仮想マシンを操作するコマンド
おわりに
参考文献
索引
となっています。
「クローリング」や「スクレイピング」をやってみたい!というあなたには、こちらの記事もおすすめです↓
『「クローリング」や「スクレイピング」を学びたいあなたにチェックしてほしい良書、9冊+α はこちらです』
本書をまとめると、こんな感じです
本書では、Pythonの基礎から、ライブラリ・フレームワークの活用、クローラー運用など、クローリングやスクレイピングを活用したシステム運用の全体像をシッカリ学べる本です。
クローリング&スクレイピングとはなにか?からはじまり、Python の使い方、Python ライブラリやフレームワークの活用方法、データ収集から必要な部分の抜き取り、そして保存など、クローリング&スクレイピングの全体をしっかり学べます。
また、著作権や利用規約、robots.txt、XMLサイトマップ、クロール先の負荷、クロール先の変化の検知など、実用で必要となる知識もきちんと解説されています。
クローリングの具体例として様々なものが紹介されています。
- Wikipedia からのデータ収集
- Twitter からのデータ収集
- Amazon からのデータ収集
- YouTube からのデータ収集
- 為替などの時系列データ
- オープンデータ
- PDFからのデータ抽出
- Linked Open Data からのデータ収集
- JavaScriptを使ったページのスクレイピング
- 取得したデータの可視化
- BigQuery での解析
加えて、クローラーをサーバーで定期的に実行したり、クローリングとスクレイピングの分離、マルチスレッド・マルチプロセス化による高速化や非同期I/Oを使った非同期化、AWSのSDK やクラウドストレージなど、クラウドの活用についても解説されています。
Python3 による web スクレイピングをシッカリ学びたいあなたの手元にあって損のない1冊となっています。
なぜ、Pythonが使われているの?
Pythonが使われるには理由があるんです。
1つめの理由は、Pythonの書きやすさです。
Pythonはプログラミングを初めて学ぶ方向けの教育用の言語としても多くの大学などで教えられています。学びやすい言語なわけです。
もう1つの理由は、 Pythonにはさまざまな強力なライブラリがあることです。
例えば、クローリングするときに必要な「非同期処理」では、Pythonには、 Twisted や Tornade, asyncio などのフレームワークやライブラリがあり、手軽に使うことができるんです。
スクレイピングでは、BeautifulSoup や lxml などのライブラリがあり、他にもScrapyはクローリング&スクレイピングに非常に役に立つフレームワークです。
これらを活用することで、簡単に素早く・効率的にクローリング&スクレイピングを行えるわけです。
加えて、収集したデータは、NumPy, SciPy, pandas, matplotlib などを使うことで、手軽にデータ分析や可視化を行うこともできてしまいます。
Pythonのライブラリやフレームワークを活用すれば、ほんの数行のプログラムを書くだけで目的の機能を実装してりすることができ、サクッと目的を果たせるわけです。
というわけで、今回は、Python3 でクローリングやスクレイピングを実践するノウハウを基礎から学べ、応用事例や運用方法、気をつけるところや注意点など、知っておくべき知識をしっかり学べる1冊をご紹介しました↓
こちらもございます↓
こちらもどうぞ↓
『「クローリング」や「スクレイピング」を学びたいあなたにチェックしてほしい良書、9冊+α はこちらです』
『「クローラー」作成や「スクレイピング」をやりたいあなたは、こちらはいかがでしょうか JavaScriptのスクレイピングもあります』
『「R」で「 Webスクレイピング」や「テキストマイニング」をやりたいあなたへの実践ガイドはこちらです』
『Webから知りたい情報だけをサクッと収集したいあなたはこちらをどうぞ【PythonによるWebスクレイピング】』
『「HTML」や「XML」を「Python」で手軽に扱いたいあなた「BeautifulSoup」はいかがでしょうか』
『「XMLとは?」HTMLとの違いや、どう役に立つの?ってあなたはこちらをどうぞ』
『Pythonの基本文法から実践テクニックまでサクッと学びたいあなたはこちらをどうぞ【科学技術計算のためのPython入門】』
『「テキストマイニング」を学びたいあなたにチェックしてほしい良書、11冊はこちらです』
『「自然言語処理」を学びたい人におすすめの良書、10冊はこちらです』
『「多変量解析」を独学したいあなたにチェックしてほしい良書、12冊はこちらです』
『「多変量解析」を「エクセル」でサクッと実行したいあなたにおすすめの良書、9冊はこちらです』
『「ロジスティック回帰分析」をサクッと実践したいあなたにおすすめの良書13冊はこちらです』
『「アンケート調査」をしたいあなたにチェックしてほしい良書、8冊はこちらです』
『「エクセル」で「データ分析」できるようになりたいあなたにチェックしてほしい良書10冊はこちらです』
『「カーネル法」とは?「サポートベクターマシン」などの基礎となるカーネル法に入門したいあなたは、こちらはいかがでしょうか【カーネル多変量解析】』
『「レコメンデーション」とは?自社の顧客を増やし続け・離したくないあなた、こちらはいかがでしょうか』
『「ベクトル」を学びたい・復習したい方にチェックしてほしい良書、10冊はこちらです』
『「C言語プログラミング」に入門したいあなたにおすすめの9冊、こちらはいかがでしょうか』
『Androidアプリケーションを開発してみたいあなた、サンプルを作りながらサクッと学べる、こちらはいかがでしょうか【Androidプログラミング入門:独りで学べるスマホアプリの作り方】』
『バーチャルリアリティ(VR)アプリケーションを開発してみたいあなた、系統的に学べるこちらはいかがでしょうか【UnityによるVRアプリケーション開発】』