nobu blog

プログラミングやゲームの話など。

*



【感想】PythonによるWebスクレイピング(第2版)は幅広くスクレピング技術をカバーした技術書

   

概要

オライリージャパンから発売されている、PythonによるWebスクレイピング(第2版)を読んだので感想を書こうと思います。

インターネットからデータを機械的に集め、必要な情報を抽出するWebスクレイピングにより、インターネット上の膨大な情報の中から、検索エンジンだけでは入手できない本当に必要な情報を入手できるようになります。

スポンサーリンク

書籍概要

どんな本?

インターネットからデータを機械的に集め、必要な情報を抽出するWebスクレイピングにより、インターネット上の膨大な情報の中から、検索エンジンだけでは入手できない本当に必要な情報を入手できるようになります。Webスクレイパーの基礎をていねいに解説するだけでなく、データの抽出、データの格納、データ収集後のクリーニング、さらには、JavaScript実行、Seleniumによる自動化、OCRを含めた自然言語処理、並列処理などの高度なトピックに加えて法律面の解説など、Webスクレイピングを実際に行うために必要なプログラミングテクニックとテクノロジー全般だけでなく、問題に遭遇した際の対処法まで紹介します。豊富な事例から、自分の問題に合ったツールを選択し、解決することが容易となります。Scrapy 1.6などPython 3に全面的に対応した待望の改訂版です。

  • Ryan Mitchell 著、黒川 利明 訳、嶋田 健志 技術監修
  • 2019年03月 発行
  • 312ページ
  • 定価3,520円(税込)

 Webスクレピングというワードを知らない方向けに補足すると、一般的にWebページのHTMLを解析して欲しい情報を抜き出す技術になります。
天気情報や商品情報などWebサイトから取得できる情報を抜き出してファイルやRDBMSなどに情報を集約して別のアプリケーション等で使用するといったシナリオが一般的に考えられますね。

スポンサーリンク

内容のまとめと感想

Pythonを使ったWebスクレイピング技術を一から説明している本になります。
Webスクレイピングとは?といった話から始まり、単純なWebサイトを例にしたスクレイピング、サイト内を再起的に巡回するクローラー的な方法などを実装コードを基に説明しています。

使用しているスクレイピング用のライブラリとしては、BeautifulSoupとScrapyといった2種類のライブラリを使用した実装例を紹介しています。

(元々BeautifulSoupがメインで、第2版でPython3系で使用できるScrapyが追加されたようです。)
ログインが必要なセッションやクッキーを使用した画面のスクレピングやSeleniumを使った応用的な手法もカバーしています。

一通りの説明の後は、PDFやWordファイル解析やCSV、MySQLへのデータの保存方法、データのクレンジング、自然言語解析、画像解析など応用的なテーマも取り扱っています。
Webスクレイピングの法的な是非なども海外の事例で書かれているのも面白いところですね。

Pythonの入門者にはどう?

Pythonの入門書ではないので、文法等はある程度わかる前提となっていますが、久しぶりにPythonのコードを見た私でも理解できるレベルで難しいコードは無いかと思います。

翻訳は?

翻訳に関しては、技術的な部分の説明は読みにくい等はあまり無かったのですが、法的な事例など比較的に文章による説明の多い箇所に関しては意味がわかりづらく違和感がありました。

個人的な感想

Pythonを使ってこれからWebスクレピングを一から学びたいという人には、体系的ににスクレピング技術(+データを加工、保存する技術も)を学ぶ事ができるのでオススメできそうです。Webページの変化に強い解析方法などにも言及されていて、面白いですね。

ただ、クローラによる再起的な解析などにも多く説明が割かれているので、特定のページを解析したいといったレベルの用途としてはちょっとオーバースペックな感じがありますね。
もっとマニアックなタグの解析にフォーカスした本かと思っていてたので、スクレイピング技術+周辺技術(CSVやRDBMSへの保存など)と幅広くスクレピングを扱う本でしたので個人的に期待する内容とは少し違いました。

これまでNode.jsでpuppeteerを使ったスクレイピングを実施を何度か実施しているので、次の機会があれば勉強を兼ねて本書を再読してPythonで実施してみようかと思います。

スポンサーリンク

インターネットからデータを機械的に集め、必要な情報を抽出するWebスクレイピングにより、インターネット上の膨大な情報の中から、検索エンジンだけでは入手できない本当に必要な情報を入手できるようになります。

 - firebase, python, 技術書