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

[cover photo]
  • 2016年03月 発行
  • 272ページ
  • ISBN978-4-87311-761-4
  • フォーマット Print PDF ePub mobi
  • 原書: Web Scraping with Python

オライリー・ジャパンで書籍を購入:
定価3,240円

Ebook Storeで電子版を購入:
価格2,592円

「Webスクレイピング」とは、インターネットからデータを機械的に集め、必要な情報を抽出するプロセスのこと。検索エンジンだけでは限られた情報しか集められませんが、この技術を使えば、インターネット上の膨大な情報の中から本当に必要な情報を入手できます。小売業、金融業をはじめ多くの業界で情報収集に活用され、アカデミックでも広い分野で使われ注目されています。本書は、前半でWebスクレイパーとクローラの基礎をていねいに解説し、後半でOCRを使った情報抽出や、JavaScript実行、Seleniumによるインタフェース使用やテスト自動化、自然言語処理などの高度なトピックに加えて法律面の解説など、Webスクレイピングを実際に行うために必要なプログラミングテクニックとテクノロジー全般を紹介します。Python 3.x対応。

関連書籍

Pythonではじめるデータラングリング
PythonとJavaScriptではじめるデータビジュアライゼーション
Spidering Hacks
入門 Python 3

まえがき

第Ⅰ部スクレイパーを作る

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

訳者あとがき
索引

Feedback

皆さんのご意見をお聞かせください。ご購入いただいた書籍やオライリー・ジャパンへのご感想やご意見、ご提案などをお聞かせください。より良い書籍づくりやサービス改良のための参考にさせていただきます。
[feedbackページへ]