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エラー

PR

秀和システム