PythonのWebスクレイピング解説書の比較メモ
スポンサーリンク
全部買ったわけではないですが、購入検討ように比較したメモ。
初歩的なレベルであればブログやQiitaに記載されている記事でなんとかなる場合が多いですが、クローラーを作成してがっつりやるなら一冊買って持っておいたほうがいいはず。
意識したポイント
残念ながら網羅できていないです。
- Javascript対策の有無
- ログインの必要なページへの対処方法が記載されているか
- Selenium WebDriver
- Xpath、CSSによる要素の絞り込みの解説
- サンプルコードのライセンス
- 環境構築の方法と解説
現在発売されている本で紹介されているPhantom.jsは開発が終了しているので非推奨。また、基本的にどの本もコマンド操作によるスクレイピング方法も紹介している。
オライリー
- 作者: Ryan Mitchell,嶋田健志,黒川利明
- 出版社/メーカー: オライリージャパン
- 発売日: 2016/03/18
- メディア: 大型本
- この商品を含むブログ (2件) を見る
出版社サイト:O'Reilly Japan - PythonによるWebスクレイピング
オライリーのスクレイピング本。サンプルコードについての扱いは他のオライリー本と同様、自由にして良い。
基本的に対象のPythonのバージョンは3系。Scrapyのサンプルのみ2.7。
- BeautifulSoup
- Scrapy (python 2.7)
- Phantom.js
- TesseractでCAPTCHAを突破する事例(不完全?)
- クッキー、入力フォーム対策
- Xpathはコラムで解説
- スクレイピングについての倫理に関する説明あり(+付録も)
- pdfniner3kが紹介されているが、個人的には
pdfminer.six
を推奨。
240ページ強と薄い。ちょっと古いのが難点。付録にPythonの文法解説あり。
『Pythonクローリング&スクレイピング』
Pythonクローリング&スクレイピング -データ収集・解析のための実践開発ガイド-
- 作者: 加藤耕太
- 出版社/メーカー: 技術評論社
- 発売日: 2016/12/16
- メディア: 大型本
- この商品を含むブログ (3件) を見る
出版社サイト:Pythonクローリング&スクレイピング ―データ収集・解析のための実践開発ガイド―:書籍案内|技術評論社
環境構築の解説は最も丁寧。
動作環境はPython 3.5 (macOS)/ Python 3.4 (Ubuntu)。 簡単なPythonの文法の解説あり。
- Vagrand(VirtualBox)
- Beautifulsoup4
- Scrapy
- PDFのパース(PDFminer)
- OpenCVで顔認識
- クラウド連携
著作権などの注意はこちらが詳しい。CSSセレクタおよびXPathについての解説はないが、解説なしにサンプル内で使用されている。
『Pythonによるクローラー&スクレイピング入門』
Pythonによるクローラー&スクレイピング入門 設計・開発から収集データの解析・運用まで
- 作者: 加藤勝也,横山裕季
- 出版社/メーカー: 翔泳社
- 発売日: 2017/10/23
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (3件) を見る
出版社サイト:Pythonによるクローラー&スクレイピング入門 設計・開発から収集データの解析・運用まで(加藤勝也 横山裕季)|翔泳社の本
明らかにプログラマ、エンジニア向け。
特にあまりネットで記事にならないような、業務での運用向けのノウハウが知りたい人が対象。
環境としてMacを前提にしている。Pythonによる並列処理の勉強にも役に立つ。
Pythonのバージョンは3.6。Homebrew+pyenvでインストールすることを前提にしている*1。
並列処理、データ収集とその後の活用に重点をおいている本。簡単なPythonの解説あり。
クローラーの作成だけでなく運用までフォローしているところがポイント。
少し変わったトピックとしては自作スクリプトへのScrapyの組み込み方法が紹介されている。
MacユーザーでなくてもLinuxが使えるなら問題なく読めるはず。
書いてないこと
- ログイン処理の必要なページへの対処
- セレクタの解説
- BeautifulSoup
『Pythonによるスクレイピング&機械学習 開発テクニック』
Pythonによるスクレイピング&機械学習 開発テクニック BeautifulSoup,scikit-learn,TensorFlowを使ってみよう
- 作者: クジラ飛行机
- 出版社/メーカー: ソシム
- 発売日: 2016/12/06
- メディア: 単行本
- この商品を含むブログ (4件) を見る
スクレイピングの本としては中途半端。
おすすめしない。
補足
Selenium WebDriverに関してはPython経由で使うよりJavaのライブラリの方が有利かも。ブラウザ側の変更への対応がJavaのライブラリが一番早いので。
どの本もXPathやCSSセレクタの解説はあまり詳しくない。ブラウザの開発ツールで取得した値そのままでは上手くいかないときがあるので注意が必要。
まとめ
技術評論社の本が一番バランスがいい。スクレイピング自体の知識があって業務でがっつりやろうとしているなら翔泳社の『Pythonによるクローラー&スクレイピング入門』。
技術評論社の本と翔泳社の本はどちらも特色があって甲乙つけがたい。あとはライブラリの公式ドキュメント。
*1:Homebrewはセットアップ済みという前提