- はじめに
- 注意事項
- 実行環境
- サンプルスクリプト
- Pythonについて
- 外部パッケージのインストール
- 注意事項
- 第1章 Webスクレイピングとは
- 1.1 Webスクレイピングとは
- 1.2 Webスクレイピングの手順
- 1.3 Webスクレイピングの注意
- 1.4 Webスクレイピングの問題点
- 第2章 登場人物のワードクラウドを生成する
- 2.1 目的
- ワードクラウド
- ターゲット
- 2.2 方法
- 手順
- ターゲットのテキストについて
- Requests
- NLTK
- WordCloud
- セットアップ
- 2.3 スクリプト
- スクリプト
- 実行例
- 2.4 スクリプトの説明
- 概要
- get_page
- sanitize
- 不要な文字の削除
- 文字の置き換え
- extract_nouns
- pos_tagの癖
- generate_wc
- WordCloud画像生成
- 2.1 目的
- 第3章 ストーリーラインを描く
- 3.1 目的
- ストーリーライン図
- ターゲット
- 3.2 方法
- 手順
- ターゲットのテキストについて
- Matplotlib
- セットアップ
- 3.3 スクリプト
- スクリプト
- 実行例
- 3.4 スクリプトの説明
- 概要
- CHARACTERS
- sanitize
- get_word_positions
- Matploblib
- generate_plot
- 3.1 目的
- 第4章 HTMLページからワードクラウドを生成する
- 4.1 目的
- ワードクラウド
- ターゲット
- 4.2 方法
- 手順
- ターゲットのテキストについて
- Beautiful Soup
- Janome
- Mecab IPADIC
- NumPy
- Pillow
- セットアップ
- 4.3 スクリプト
- スクリプト
- 実行例
- 4.4 スクリプトの説明
- 概要
- get_pageの文字化け対策
- extract_text
- extract_nouns
- Tokenオブジェクト
- 名詞抽出
- 整理
- フォントの選択
- 背景色と輪郭色
- 文字色
- 型抜き
- 4.1 目的
- 第5章 Zipテキストの小説からワードクラウドを生成する
- 5.1 目的
- ワードクラウド
- ターゲット
- 5.2 方法
- 手順
- ターゲットのテキストについて
- zipfile
- Chardet
- Janome Analyzerモジュール
- セットアップ
- 5.3 スクリプト
- スクリプト
- 実行例
- 5.4 スクリプトの説明
- 概要
- get_page
- parse_zipped
- Chardetによる文字エンコーディング推定
- extract_noun
- charfilter
- tokenizer
- tokenfilter
- CompoundNounFilter
- POSKeepFilter
- TokenCountFilter
- Analyzerの実行
- generate_wc
- 5.1 目的
- 第6章 HTMLの表をグラフにする
- 6.1 目的
- グラフ
- ターゲット
- 6.2 方法
- 手順
- ターゲットの表について
- Pandas
- html5lib
- OpenPyXL
- セットアップ
- 6.3 スクリプト
- スクリプト
- 実行例
- 6.4 スクリプトの説明
- 概要
- jdate_to_datetime
- extract_tables
- DataFrame
- rowspan
- 表の結合
- 注の削除
- 日付の変換
- マグニチュード値を小数点数に変換
- 統計値の計算
- generate_plot
- CSV/Excel形式での保存
- 6.1 目的
- 第7章 HTMLページから画像だけを抜き出す
- 7.1 目的
- 画像オブジェクトの保存
- ターゲット
- 7.2 方法
- 手順
- ターゲットの画像リンクについて
- ターゲットの画像フォーマットについて
- Pickle
- Plilow/PIL
- セットアップ
- 7.3 スクリプト
- スクリプト
- 実行例
- 7.4 スクリプトの説明
- 概要
- get_page
- 多リソースアクセス時の問題
- extract_img_links
- 絶対URLの取得
- all_images
- 画像オブジェクトの属性とメソッド
- 画像変換
- pickle_save
- show_image
- 7.1 目的
- 第8章 HTMLページの画像からアニメーションを生成する
- 8.1 目的
- アニメーション画像
- ターゲット
- 8.2 方法
- 手順
- アニメーション画像フォーマットについて
- Pillowの画像保存パラメータ
- セットアップ
- 8.3 スクリプト
- スクリプト
- 実行例
- 8.4 スクリプトの説明
- 概要
- image_animation
- キャンバスの生成
- 貼り付け
- アニメーション保存
- 8.1 目的
- 第9章 HTMLページの画像からサムネールを生成する
- 9.1 目的
- サムネール画像
- ターゲット
- 9.2 方法
- 手順
- 台紙画像の構成
- セットアップ
- 9.3 スクリプト
- スクリプト
- 実行例
- 9.4 スクリプトの説明
- 概要
- image_thumbnail
- 9.1 目的
- 第10章 HTMLページの画像から顔を抽出する
- 10.1 目的
- 顔サムネール
- ターゲット
- 10.2 方法
- OpenCV
- 画像変換
- 顔の検出
- モデルデータ
- 本書収録のモデルデータ
- セットアップ
- 10.3 スクリプト
- スクリプト
- 実行例
- 10.4 スクリプトの説明
- 概要
- detect_faces
- CascadeClassifier
- crop_faces
- get_faces
- メイン
- 10.1 目的
- 第11章 RESTで取得した地理座標から地図を作成する
- 11.1 目的
- インタラクティブマップ
- ターゲット
- 11.2 方法
- 手順
- REST APIについて
- JSONテキストについて
- ターゲットのデータ構造
- ターゲットのデータの精度
- Plotly Express
- セットアップ
- 11.3 スクリプト
- スクリプト
- 実行例
- 11.4 スクリプトの説明
- 概要
- get_page
- extract_locations
- generate_map
- 11.1 目的
- 第12章 CSVの地理座標から地図を作成する
- 12.1 目的
- インタラクティブマップ
- ターゲット
- 12.2 方法
- 手順
- 抽出する列
- 文字エンコーディングについて
- 不正な文字について
- 半角カナについて
- 列名について
- 余分な行
- 余分な列
- セットアップ
- 12.3 スクリプト
- スクリプト
- 実行例
- 12.4 スクリプトの説明
- 概要
- get_csv
- 数値データが正しく解釈されたか確認
- 列名のスペースの除去
- 複数の列の値を集約
- 列の取り出し
- NaNの削除
- generate_map
- 12.1 目的
- 付録A やや高度な話題
- A.1 ボット対策対応
- アクセス拒否
- 要求ヘッダを確認する
- 要求ヘッダに情報を加える
- A.2 HTTPタイムアウト対応
- 例外が上がるのが遅い
- タイムアウト指定
- A.3 怪しいサーバ証明書
- セキュリティ上の懸念
- あえて怪しいサイトに接続する
- badssl.com
- A.4 しつこい文字化け対策
- グーテンベルグが文字化けしない理由
- なぜHTTPヘッダに文字エンコーディング情報がない?
- ブラウザが文字化けしない理由
- Requestsのしつこい文字化け
- A.5 並列アクセス
- 直列アクセスは遅い
- 並列処理
- タスクをスレッドに渡し、結果を得る
- たくさん実行するスクリプト
- 並列は早い
- A.6 Beautiful SoupとCSS/JavaScript
- html.parserとhtml5libの違い
- CSS/JavaScriptの情報の取得
- A.7 東京都オープンデータAPI
- 東京都オープンデータカタログ
- APIの用法
- Requestsの用法
- データの構造
- サンプルスクリプト
- A.8 Pillowの画像フォーマット
- A.9 Pillowで利用できる色名
- A.10 最も近い色名
- A.11 Matplotlibで複数画像をレイアウト
- A.1 ボット対策対応
- 付録B 参考文献
- B.1 文献
- B.2 ライブラリURL
- B.3 データソースURL
- B.4 その他
- 付録C スクリプトリスト