Puppeteer入門 スクレイピング+Web操作自動処理プログラミング
概 要
Puppeteerは、Node.jsで動く最新のWebブラウザ自動化ライブラリで、データ収集やWeb開発、動作テストの効率化などに使われます。Google製のライブラリなので、Chromeとの相性は抜群です。本書は、Puppeteerの実行環境の構築から、スクレイピングとWeb操作の自動化を実現するプログラミング、デバッグまでを解説した入門書です。Node.jsとJavaScriptの入門書としても使えます。鶴田謙二さんによる素敵なイラストが目印です!
著者 | ヴェネチア冒険團、美崎薫、小原亮一、酒井一成 |
価格 | 本体2800円(税別) |
ISBN | 978-4-7980-5520-6 |
発売日 | 2018/9/19 |
判型 | B5変 |
ページ数 | 384 |
CD/DVD | - |
ダウンロード | 有 |
目次
第1部 準備編
第1章 Puppeteerの基礎
1-1 ブラウザ自動化のライブラリ Puppeteer
1-2 JavaScriptと組み合わせ可能 Puppeteerでできること、できないこと
1-3 画面にウィンドウを出さない Headlessブラウザ
1-4 兄弟ソフト ChromeとChromium
1-5 私的使用のための複製は自由 スクレイピングと著作権
1-6 岡崎市立中央図書館事件に学ぶ スクレイピングの注意点
1-7 ほかのブラウザにはない機能が充実 ディベロッパーツールの使い方
1-8 Webページを構成する要素 HTMLとDOM
第2章 実行環境の準備
2-1 ソフトウェアモジュールと関連フォルダー Puppeteerに必要な環境
2-2 Node.jsの開発環境 Visual Studio Codeのインストール
2-3 JavaScriptのランタイム環境 Node.jsのインストール
2-4 ファイルをフォルダーを越えて扱う ワークスペース
2-5 テンプレートとコマンドシェルの2通り ワークスペースの作成
2-6 パッケージ管理のコマンドラインツール npm
2-7 VS Codeの書式拡張機能 ESLint
2-8 npmを使った Puppeteerのインストール
第3章 JavaScriptの基礎知識
3-1 わかりやすい JavaScriptの書き方
3-2 JavaScriptを補完する Node.jsの標準モジュール
3-3 基本的な文法と記法(1) 変数と関数
3-4 基本的な文法と記法(2) 配列と要素の追加 /削除
3-5 基本的な文法と記法(3) ループと条件分岐
3-6 同期処理と非同期処理(1) コールバック関数
3-7 同期処理と非同期処理(2) Promiseを返す
3-8 同期処理と非同期処理(3) async /await
第2部 基本編
第4章 スクレイピングの自動化
4-1 要素を特定する基本的な方法 idで探す
4-2 idを指定していなかった場合は classで探す
4-3 idもタグも指定のない場合は タグで探す
4-4 name属性で要素を指定 nameで探す
4-5 要素を特定して 属性名で探す
4-6 idもnameもないときは DOMツリーで探す
4-7 2つの方法を利用 ページをたどる
第5章 Web操作の自動化
5-1 基本的な要素 テキストボックスに入力する
5-2 複数行に入力可能な要素 テキストエリアに入力する
5-3 動的に生成される要素 ラジオボタンで選択する
5-4 選択肢を1つだけ選べる要素 セレクトボックスで選択する
5-5 複数の値を選択する要素 チェックボックスをクリックする
5-6 一瞬で制御! 複数のチェックボックスをすべてチェックする
5-7 イベントの起点となる要素 ボタンをクリックする
第6章 複雑なWeb操作の自動化
6-1 URLからファイル名を取得 画像をダウンロードする
6-2 URLからsrcを取得 リンクのある画像をダウンロードする
6-3 ディベロッパーツールで解析 複雑な画像をダウンロードする
6-4 必要な情報をいつでも手元に 画面をキャプチャする
6-5 コアモジュールのfsを利用 ファイルを読み書きする
6-6 ファイル名を指定してファイルストリームを生成 CSVファイルを出力する
6-7 pdf()メソッドを利用 PDFを作成する
第3部 実践編
第7章 自動化処理のサンプルプログラム
7-1 環境変数を利用 ログインとパスワードを管理する
7-2 結果をCSVファイルに保存 秀和システムの新刊一覧の詳細を取得する
7-3 ループ処理でページを次々に保存 ブログをPDFでバックアップする
7-4 DOM要素の変化に対応 PDF結合サービスの利用を自動化する
7-5 ループ処理で自動化 ニュース記事をPDFにする
7-6 汎用的な関数を利用 ブログの画像を保存する
7-7 URLを別サイトに自動的に貼りつけ YouTube動画をスクレイピングする
7-8 駅名とジャンルのかけあわせ ぐるなび情報を取得する
7-9 銘柄コードの該当ページに遷移 株価を取得する
7-10 特定のタグを解析 天気情報を取得する
7-11 Webページの描画を待機 図書館の蔵書を検索する
7-12 複数の条件で自動検索 ヤフオク!で商品を探す
7-13 特定のキーワードを含むリンクを開く Googleで検索する
7-14 地図を画像として保存 GoogleMapを使う
7-15 URLをデコードして解析 Google画像を検索する
7-16 3行で機械翻訳 Google翻訳を使う
7-17 新作映画をずぼらブラウジング 映画情報を見る
7-18 希望する条件をコード化 SUUMOから不動産情報を取得する
7-19 送信する手順を自動化 宅ふぁいる便でファイルを送信する
7-20 よく使う駅をPuppeteerに登録 乗り換え案内から情報を取得する
7-21 定期的に繰り返して実行 遅延情報を取得する
7-22 scrollByで自動スクロール Twitterをオートスクロールで見る
第8章 テスト駆動開発
8-1 心理的な課題と技術的な課題 テスト駆動開発とUIテストを実行する
8-2 検証が重要 Puppeteerのコードをテストする
8-3 テストフレームワークの利用 avaを導入する
8-4 自動テストのための要素を検証 テストコードを実装する
8-5 指定した時刻に動かすプログラム cron
8-6 バッチファイルを利用 Windowsでタスクスケジューラを設定する
8-7 シェルスクリプトで実行 Macで自動実行プロセスを設定する
第9章 デバッグ
9-1 ファイルやディレクトリが存在しないエラー ENOENTエラー
9-2 モジュールが見つからないエラー Cannot find moduleエラー
9-3 ハンドルされていないエラー UnhandledPromiseRejectionsエラー
9-4 ネットにつながっていないエラー ERR_INTERNET_DISCONNECTEDエラー
9-5 ページ遷移がタイムアウトしたエラー Navigation Timeout Exceededエラー
9-6 定数や変数の扱いのエラー is not definedエラー
9-7 指定した要素を見つけられなかったエラー No node found for selectorエラー
9-8 文法のエラー SyntaxError: Unexpected tokenエラー