内容紹介
検索エンジンだけでは入手できない、本当に欲しい情報をWebスクレイピングで手に入れる!
インターネットからデータを機械的に集め、必要な情報を抽出するプロセスが「Webスクレイピング」です。検索エンジンだけでは限られた情報しか集めることができませんが、Webスクレイピングの技術を使えば、インターネット上の膨大な情報の中から本当に必要な情報を入手することができます。コンピュータサイエンスに限らず(理系にも限らない)研究者たちが、最新動向を把握するために、また、小売業界、金融業界でも情報収集にWebスクレイピングを活用するなど、広い分野で求められ、また注目されている技術です。本書はPythonを使ってWebスクレイピングを行うための解説書です。
このような方におすすめ
Webからデータを収集したいと考えている人、データサイエンティスト、研究者
目次
詳細目次
まえがき
第Ⅰ部スクレイパーを作る
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
訳者あとがき
索引
続きを見る