「Webスクレイピング」とは、インターネットからデータを機械的に集め、必要な情報を抽出するプロセスのこと。検索エンジンだけでは限られた情報しか集められませんが、この技術を使えば、インターネット上の膨大な情報の中から本当に必要な情報を入手できます。小売業、金融業をはじめ多くの業界で情報収集に活用され、アカデミックでも広い分野で使われ注目されています。本書は、前半でWebスクレイパーとクローラの基礎をていねいに解説し、後半でOCRを使った情報抽出や、JavaScript実行、Seleniumによるインタフェース使用やテスト自動化、自然言語処理などの高度なトピックに加えて法律面の解説など、Webスクレイピングを実際に行うために必要なプログラミングテクニックとテクノロジー全般を紹介します。Python 3.x対応。
PythonによるWebスクレイピング
Ryan Mitchell 著、黒川 利明 訳、嶋田 健志 技術監修
- TOPICS
- Programming , Web , Database , Python
- 発行年月日
- 2016年03月
- PRINT LENGTH
- 272
- ISBN
- 978-4-87311-761-4
- 原書
- Web Scraping with Python
- FORMAT
- PDF EPUB
目次
まえがき 第Ⅰ部スクレイパーを作る 1章 最初のWebスクレイパー 1.1 つなげる 1.2 はじめてのBeautifulSoup 1.2.1 BeautifulSoupのインストール 1.2.2 BeautifulSoupを実行する 1.2.3 確実につなげる 2章 高度なHTMLパーシング 2.1 いつもハンマーが必要なわけではない 2.2 BeautifulSoupの別の使い方 2.2.1 BeautifulSoupのfind()とfindAll() 2.2.2 他のBeautifulSoupのオブジェクト 2.2.3 木のナビゲーション 2.3 正規表現 2.4 正規表現とBeautifulSoup 2.5 属性へのアクセス 2.6 ラムダ式 2.7 BeautifulSoupを超えて 3章 クローリングを開始する 3.1 単一ドメインを走査する 3.2 サイト全体をクローリング 3.2.1 サイト全体でデータを収集する 3.3 インターネットをクローリング 3.4 Scrapyでクローリング 4章 APIを使う 4.1 APIはどう働くか 4.2 共通表記 4.2.1 メソッド 4.2.2 認証 4.3 レスポンス 4.3.1 API呼び出し 4.4 Echo Nest 4.4.1 いくつかの例 4.5 Twitter 4.5.1 始めよう 4.5.2 いくつかの例 4.6 Google API 4.6.1 始めよう 4.6.2 いくつかの例 4.7 JSONをパースする 4.8 すべてをホームに集める 4.9 APIについてさらに学ぶ 5章 データを格納する 5.1 メディアファイル 5.2 データをCSVに格納する 5.3 MySQL 5.3.1 MySQLをインストールする 5.3.2 基本的なコマンド 5.3.3 Pythonと統合する 5.3.4 データベース技法と優れた実践 5.3.5 MySQLの「6次」 5.4 メール 6章 文書を読む 6.1 文書エンコーディング 6.2 テキスト 6.2.1 テキスト符号化とグローバルインターネット 6.3 CSV 6.3.1 CSVファイルを読む 6.4 PDF 6.5 Microsoft Wordと.docx 第Ⅱ部 高度なスクレイピング 7章汚れたデータをクリーニング 7.1 コードでのクリーニング 7.1.1 データ正規化 7.2 事実の後でクリーニング 7.2.1 OpenRefine 8章 自然言語の読み書き 8.1 データを要約する 8.2 マルコフモデル 8.2.1 6次のWikipedia:結論 8.3 Natural Language Toolkit 8.3.1 インストールと設定 8.3.2 NLTKでの統計分析 8.3.3 NLTKでの字句解析 8.4 追加の情報源 9章 フォームとログインでクロール 9.1 Pythonリクエストライブラリ 9.2 基本フォームをサブミットする 9.3 ラジオボタン、チェックボックス、その他入力 9.4 ファイルと画像のサブミット 9.5 ログインとクッキーを扱う 9.5.1 HTTP基本アクセス認証 9.6 他のフォーム問題 10章 JavaScriptのスクレイピング 10.1 JavaScriptの簡単な紹介 10.1.1 共通JavaScriptライブラリ 10.2 Ajaxと動的 HTML 10.2.1 Seleniumを用いてPythonでJavaScriptを実行する 10.3 リダイレクトの処理 10.4 JavaScriptについての最終ノート 11章 画像処理とテキスト認識 11.1 画像処理ライブラリ 11.1.1 Pillow 11.1.2 Tesseract 11.1.3 NumPy 11.2 きちんとフォーマットされたテキストの処理 11.2.1 Webサイトの画像からテキストをスクレイピング 11.3 CAPTCHAの読み込みとTesseractの訓練 11.3.1 Tesseractを訓練する 11.4 CAPTCHAの獲得と解のサブミット 12章 スクレイピングの落とし穴を避ける 12.1 倫理についての注意 12.2 人間らしく見せる 12.2.1 ヘッダを調整する 12.2.2 クッキーを扱う 12.2.3 タイミングがすべて 12.3 共通フォームセキュリティ機能 12.3.1 隠し入力フィールド値 12.3.2 ハニーポットを避ける 12.4 人間らしく見せるためのチェックリスト 13章 Webサイトをスクレイパーでテストする 13.1 テスト入門 13.1.1 ユニットテストとは何か 13.2 Pythonのunittest 13.2.1 Wikipediaをテストする 13.3 Seleniumでテストする 13.3.1 サイトとやり取りする 13.4 unittestかSeleniumか? 14章リモートでスクレイピング 14.1 なぜリモートサーバを使うか 14.1.1 IPアドレスブロックを避ける 14.1.2 移植性と拡張性 14.2 Tor 14.2.1 PySocks 14.3 リモートホスティング 14.3.1 Webサイトホスティングアカウントから実行する 14.3.2 クラウドから実行する 14.4 追加の参考書 14.5 さらに進むために 付録A Python入門 A.1 インストールと「Hello, World!」 付録B インターネット入門 付録C Webスクレイピングの適法性と倫理 C.1 商標、著作権、特許 C.1.1 著作権法 C.2 動産不法侵入 C.3 コンピュータ犯罪取締法 C.4 robots.txtとサービス規約 C.5 3つのWebスクレイパー C.5.1 eBay対Bidder's Edgeと動産不法侵入 C.5.2 米国政府対Auernheimerとコンピュータ犯罪取締法 C.5.3 Field対Google:著作権とrobots.txt 訳者あとがき 索引