PythonによるWebスクレイピング
- Ryan Mitchell 著、黒川 利明 訳、嶋田 健志 技術監修
- 2016年03月 発行
- 272ページ
- ISBN978-4-87311-761-4
- フォーマット PDF ePub mobi
- 原書: Web Scraping with Python
内容
「Webスクレイピング」とは、インターネットからデータを機械的に集め、必要な情報を抽出するプロセスのこと。検索エンジンだけでは限られた情報しか集められませんが、この技術を使えば、インターネット上の膨大な情報の中から本当に必要な情報を入手できます。小売業、金融業をはじめ多くの業界で情報収集に活用され、アカデミックでも広い分野で使われ注目されています。本書は、前半でWebスクレイパーとクローラの基礎をていねいに解説し、後半でOCRを使った情報抽出や、JavaScript実行、Seleniumによるインタフェース使用やテスト自動化、自然言語処理などの高度なトピックに加えて法律面の解説など、Webスクレイピングを実際に行うために必要なプログラミングテクニックとテクノロジー全般を紹介します。Python 3.x対応。
関連書籍
目次
まえがき
第Ⅰ部スクレイパーを作る
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
訳者あとがき
索引