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

Book description

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

Table of contents

  1. 大扉
  2. 原書大扉
  3. クレジット
  4. まえがき
    1. Webスクレイピングとは何か
    2. なぜWebスクレイピングなのか
    3. 本書について
    4. 本書の表記法
    5. サンプルコードの使い方
    6. 問い合わせ先
    7. 謝辞
  5. 第I部 スクレイパーを作る
    1. 1章 最初のWebスクレイパー
      1. 1.1 つなげる
      2. 1.2 初めてのBeautifulSoup
        1. 1.2.1 BeautifulSoupのインストール
        2. 1.2.2 BeautifulSoupを実行する
        3. 1.2.3 例外を処理して確実につなげる
    2. 2章 高度なHTMLパース
      1. 2.1 いつもハンマーが必要なわけではない
      2. 2.2 BeautifulSoupの使い方
        1. 2.2.1 BeautifulSoupのfind()とfind_all()
        2. 2.2.2 他のBeautifulSoupオブジェクト
        3. 2.2.3 木のナビゲーション
          1. 2.2.3.1 子や他の子孫を扱う
          2. 2.2.3.2 兄弟を扱う
          3. 2.2.3.3 親を扱う
      3. 2.3 正規表現
      4. 2.4 正規表現とBeautifulSoup
      5. 2.5 属性へのアクセス
      6. 2.6 ラムダ式
    3. 3章 Webクローラを書く
      1. 3.1 単一ドメインを走査する
      2. 3.2 サイト全体をクローリング
        1. 3.2.1 サイト全体でデータを収集する
      3. 3.3 インターネットをクローリング
    4. 4章 Webクローリングのモデル
      1. 4.1 プランニングとオブジェクトの定義
      2. 4.2 さまざまなWebサイトのレイアウトを扱う
      3. 4.3 クローラを構造化する
        1. 4.3.1 検索によるサイトのクローリング
        2. 4.3.2 リンクをたどってサイトをクローリングする
        3. 4.3.3 異なる種類のページもクローリングする
      4. 4.4 Webクローラのモデルについての考察
    5. 5章 Scrapy
      1. 5.1 Scrapyのインストール
        1. 5.1.1 新たなスパイダーの初期化
      2. 5.2 スクレイパーを簡単に書く
      3. 5.3 規則を使ったスパイダー
      4. 5.4 収集データを整理するItemを作る
      5. 5.5 Itemで出力する
      6. 5.6 itemパイプライン
      7. 5.7 Scrapyでのロギング
      8. 5.8 さらに学ぶために
    6. 6章 データを格納する
      1. 6.1 メディアファイル
      2. 6.2 データをCSVに格納する
      3. 6.3 MySQL
        1. 6.3.1 MySQLのインストール
        2. 6.3.2 基本的なコマンド
        3. 6.3.3 Pythonと統合する
        4. 6.3.4 データベース技法と優れた実践
        5. 6.3.5 MySQLの「6次」
      4. 6.4 メール
  6. 第II部 高度なスクレイピング
    1. 7章 文書を読む
      1. 7.1 文書エンコーディング
      2. 7.2 テキスト
        1. 7.2.1 テキストエンコーディングとグローバルインターネット
          1. 7.2.1.1 テキストエンコーディングの歴史
          2. 7.2.1.2 エンコーディングの実際
      3. 7.3 CSV
        1. 7.3.1 CSVファイルを読む
      4. 7.4 PDF
      5. 7.5 Microsoft Wordと.docx
    2. 8章 汚れたデータをクリーニング
      1. 8.1 コードでのクリーニング
        1. 8.1.1 データ正規化
      2. 8.2 データ収集後のクリーニング
        1. 8.2.1 OpenRefine
          1. 8.2.1.1 インストール
          2. 8.2.1.2 OpenRefineを使う
    3. 9章 自然言語の読み書き
      1. 9.1 データを要約する
      2. 9.2 マルコフモデル
        1. 9.2.1 6次のWikipedia:結論
      3. 9.3 Natural Language Toolkit
        1. 9.3.1 インストールとセットアップ
        2. 9.3.2 NLTKでの統計分析
        3. 9.3.3 NLTKでの字句解析
      4. 9.4 さらに学ぶために
    4. 10章 フォームとログインでクローリング
      1. 10.1 Requestsライブラリ
      2. 10.2 基本フォームをサブミットする
      3. 10.3 ラジオボタン、チェックボックス、その他入力
      4. 10.4 ファイルと画像のサブミット
      5. 10.5 ログインとクッキーを扱う
        1. 10.5.1 HTTP Basic認証
      6. 10.6 他のフォーム問題
    5. 11章 JavaScriptのスクレイピング
      1. 11.1 JavaScriptの簡単な紹介
        1. 11.1.1 共通JavaScriptライブラリ
          1. 11.1.1.1 jQuery
          2. 11.1.1.2 Google Analytics
          3. 11.1.1.3 Google Maps
      2. 11.2 Ajaxと動的HTML
        1. 11.2.1 Seleniumを用いてPythonでJavaScriptを実行
        2. 11.2.2 Seleniumの他のWebDriver
      3. 11.3 リダイレクトの処理
      4. 11.4 JavaScriptについての最終ノート
    6. 12章 APIでクローリング
      1. 12.1 APIの簡単な紹介
        1. 12.1.1 HTTPメソッドとAPI
        2. 12.1.2 APIレスポンス
      2. 12.2 JSONをパースする
      3. 12.3 ドキュメントがないAPI
        1. 12.3.1 ドキュメントのないAPIを調べる
        2. 12.3.2 ドキュメントのないAPIのドキュメントを作る
        3. 12.3.3 APIの探索とドキュメント作成を自動化する
      4. 12.4 APIを他のデータソースと組み合わせる
      5. 12.5 APIについてさらに学ぶために
    7. 13章 画像処理とテキスト認識
      1. 13.1 画像処理ライブラリ
        1. 13.1.1 Pillow
        2. 13.1.2 Tesseract
          1. 13.1.2.1 Tesseractのインストール
          2. 13.1.2.2 pytesseract
        3. 13.1.3 NumPy
      2. 13.2 きちんとフォーマットされたテキストの処理
        1. 13.2.1 画像を自動修正する
        2. 13.2.2 Webサイトの画像からテキストをスクレイピング
      3. 13.3 CAPTCHAの読み込みとTesseractの訓練
        1. 13.3.1 Tesseractを訓練する
      4. 13.4 CAPTCHA解の獲得と解のサブミット
    8. 14章 スクレイピングの落とし穴を避ける
      1. 14.1 倫理についての注意
      2. 14.2 人間らしく見せる
        1. 14.2.1 ヘッダを調整する
        2. 14.2.2 JavaScriptでクッキーを扱う
        3. 14.2.3 タイミングがすべて
      3. 14.3 共通フォームセキュリティ機能
        1. 14.3.1 隠し入力フィールド値
        2. 14.3.2 ハニーポットを避ける
      4. 14.4 人間らしく見せるためのチェックリスト
    9. 15章 Webサイトをスクレイパーでテストする
      1. 15.1 テスト入門
        1. 15.1.1 ユニットテストとは何か
      2. 15.2 Pythonのunittest
        1. 15.2.1 Wikipediaをテストする
      3. 15.3 Seleniumでテストする
        1. 15.3.1 サイトとやり取りする
          1. 15.3.1.1 ドラッグアンドドロップ
          2. 15.3.1.2 スクリーンショットを撮る
      4. 15.4 unittestかSeleniumか?
    10. 16章 並列にWebクローリング
      1. 16.1 プロセスとスレッド
      2. 16.2 マルチスレッドクローリング
        1. 16.2.1 レース条件とキュー
        2. 16.2.2 threadingモジュール
      3. 16.3 マルチプロセスクローリング
        1. 16.3.1 マルチプロセスクローリング例
        2. 16.3.2 プロセス間通信
      4. 16.4 マルチプロセスクローリング――別の方式
    11. 17章 リモートでスクレイピング
      1. 17.1 なぜリモートサーバを使うか
        1. 17.1.1 IPアドレスブロックを避ける
        2. 17.1.2 移植性と拡張性
      2. 17.2 Tor
        1. 17.2.1 PySocks
      3. 17.3 リモートホスティング
        1. 17.3.1 Webサイトホスティングアカウントから実行する
        2. 17.3.2 クラウドから実行する
      4. 17.4 さらに学ぶために
    12. 18章 Webスクレイピングの適法性と倫理
      1. 18.1 商標、著作権、特許
        1. 18.1.1 著作権法
      2. 18.2 動産不法侵入
      3. 18.3 コンピュータ犯罪取締法
      4. 18.4 robots.txtとサービス規約
      5. 18.5 3つのWebスクレイパー
        1. 18.5.1 eBay対Bidder's Edgeと動産不法侵入
        2. 18.5.2 米国政府対Auernheimerとコンピュータ犯罪取締法
        3. 18.5.3 Field対Google:著作権とrobots.txt
      6. 18.6 さらに進むために
    13. 訳者あとがき
      1. はじめに
      2. 初版との相違点
        1. 原書初刷2018-03-20との相違点
        2. 「18章 Webスクレイピングの適法性と倫理」について
      3. 謝辞
      4. 参考文献
        1. Pythonに関して
        2. Scrapyについて
        3. APIについて
        4. MySQLについて
        5. 自然言語処理について
        6. クラウド利用について
        7. 統計について
          1. アルゴリズムについて
          2. 著作権について
    14. 著者・訳者紹介
  7. 奥付

Product information

  • Title: PythonによるWebスクレイピング 第2版
  • Author(s): Ryan Mitchell, 黒川 利明, 嶋田 健志
  • Release date: March 2019
  • Publisher(s): O'Reilly Japan, Inc.
  • ISBN: 9784873118710

You might also like

book

統計クイックリファレンス 第2版

by Sarah Boslaugh, 黒川 利明, 木下 哲也, 中山 智文, 本藤 孝, 樋口 匠

本書は統計の基本概念から応用的手法まで、幅広い情報を網羅したリファレンスです。情報の時代の現代、膨大なデータを収集・分析・解釈・説明するための知識とテクニックが求められています。本書は、「統計的に考える」ことを念頭に、データをしっかり理解し、データの誤用を避け、数字に惑わされないための考え方と知識、テクニックを身に付けられるよう執筆されています。複雑な専門用語に関してもよく整理されており、わかりやすく解説。後半では、ビジネス、医療、教育などのさまざまな専門に特化した部分にも触れて概略がわかるよう工夫されています。新しい情報も数多く盛り込み、時代に即した内容となっています。

book

プログラミングC# 第8版

by Ian Griffiths, 木下 哲也, 鈴木 幸敏

C#を体系的に網羅したC#プログラマのバイブルが、C# 8.0に合わせて全面改訂。言語仕様からクラウドも考慮したWebアプリ開発、デスクトップアプリ構築まで、C# 8.0の基本から高度なテクニックまでを詳しく紹介します。C# 8.0では、パターンマッチング、範囲構文、非同期メソッドの大幅拡張、null許容参照をはじめさまざまな新機能の追加と改善がされています。本書はこうした新機能もしっかりとフォロー。詳細な説明と、豊富なサンプルコードを用意し、初心者はもちろん中上級者の要望にも応える一冊です。

book

Javaパフォーマンス

by Scott Oaks, Acroquest Technology株式会社, 寺田 佳央, 牧野 聡

本書ではJVMのチューニングとJavaプラットフォームでの問題解決の双方からJavaパフォーマンスの「アート」と「サイエンス」を明らかにします。Javaアプリケーションのテスト手法やベンチマーク測定、パフォーマンス分析に必須のモニタリングツールを学んだうえで、さまざまな性能改善について議論します。JITコンパイル、ガベージコレクションというチューニングが大きな役割を果たす2つの仕組みについて最初に考察します。続いて、Javaプラットフォームのさまざまな側面で高いパフォーマンスを発揮するためのベストプラクティスを紹介。Java 8対応。

book

Rクイックリファレンス 第2版

by Joseph Adler, 大橋 真也, 木下 哲也

統計分析の標準ツールとして不動の人気を誇るオープンソースソフトウェアRについてのリファレンス。Rの基本操作から、パッケージの詳細、コマンドや関数の一覧、さらには可視化、最適化、並列化など、Rをさらにパワーアップさせるテクニックまで、幅広いトピックを取り上げます。Rの持つ機能を詳しく解説しつつ、Rの可能性を追求する一冊です。圧倒的な情報量を誇り、初心者にも上級者にも有用な情報が満載です。Rユーザにとっては常に手元に置いておきたい一冊です。