PythonのWebスクレイピング解説書の比較メモ


スポンサーリンク

全部買ったわけではないですが、購入検討ように比較したメモ。

初歩的なレベルであればブログやQiitaに記載されている記事でなんとかなる場合が多いですが、クローラーを作成してがっつりやるなら一冊買って持っておいたほうがいいはず。

意識したポイント

残念ながら網羅できていないです。

  • Javascript対策の有無
  • ログインの必要なページへの対処方法が記載されているか
  • Selenium WebDriver
  • XpathCSSによる要素の絞り込みの解説
  • サンプルコードのライセンス
  • 環境構築の方法と解説

現在発売されている本で紹介されているPhantom.jsは開発が終了しているので非推奨。また、基本的にどの本もコマンド操作によるスクレイピング方法も紹介している。

オライリー

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

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

出版社サイト: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クローリング&スクレイピング ―データ収集・解析のための実践開発ガイド―:書籍案内|技術評論社

環境構築の解説は最も丁寧。

動作環境はPython 3.5 (macOS)/ Python 3.4 (Ubuntu)。 簡単なPythonの文法の解説あり。

著作権などの注意はこちらが詳しい。CSSセレクタおよびXPathについての解説はないが、解説なしにサンプル内で使用されている。

Pythonによるクローラー&スクレイピング入門』

出版社サイト:Pythonによるクローラー&スクレイピング入門 設計・開発から収集データの解析・運用まで(加藤勝也 横山裕季)|翔泳社の本

明らかにプログラマ、エンジニア向け。

特にあまりネットで記事にならないような、業務での運用向けのノウハウが知りたい人が対象。

環境としてMacを前提にしている。Pythonによる並列処理の勉強にも役に立つ。

Pythonのバージョンは3.6。Homebrew+pyenvでインストールすることを前提にしている*1

並列処理、データ収集とその後の活用に重点をおいている本。簡単なPythonの解説あり。

  • ジョブキューCelery)
  • Web(django, flask)
  • chromedriver
  • Scrapy
  • Slack連携
  • 最後発で内容が比較的新しい

クローラーの作成だけでなく運用までフォローしているところがポイント。

少し変わったトピックとしては自作スクリプトへのScrapyの組み込み方法が紹介されている。

MacユーザーでなくてもLinuxが使えるなら問題なく読めるはず。

書いてないこと

  • ログイン処理の必要なページへの対処
  • セレクタの解説
  • BeautifulSoup

Pythonによるスクレイピング&機械学習 開発テクニック』

スクレイピングの本としては中途半端。

  • BeautifulSoup4がメイン
  • XPathによる要素の絞り込み方法は紹介されていない。
  • Cookie対策については対策が紹介されている
  • 環境構築方法の解説がいい加減(Docker etc.)

書評:a244.hateblo.jp

おすすめしない。

補足

Selenium WebDriverに関してはPython経由で使うよりJavaのライブラリの方が有利かも。ブラウザ側の変更への対応がJavaのライブラリが一番早いので。

selenide.org

どの本もXPathCSSセレクタの解説はあまり詳しくない。ブラウザの開発ツールで取得した値そのままでは上手くいかないときがあるので注意が必要。

まとめ

技術評論社の本が一番バランスがいい。スクレイピング自体の知識があって業務でがっつりやろうとしているなら翔泳社『Pythonによるクローラー&スクレイピング入門』

技術評論社の本と翔泳社の本はどちらも特色があって甲乙つけがたい。あとはライブラリの公式ドキュメント。

*1:Homebrewはセットアップ済みという前提

広告