書店員向け情報 HELP
出版者情報
書店注文情報
Puppeteer入門
スクレイピング+Web操作自動処理プログラミング
- 書店発売日
- 2018年9月19日
- 登録日
- 2018年7月18日
- 最終更新日
- 2018年9月13日
紹介
■Puppeteerで、ブラウザのUIを自動操作!
近年、Webシステムの重要性が増しています。
基本的にWebシステムは対話型のシステムであり、
手動で操作するものですが、2つの大きな課題があります。
1つは「作る側が対話的に動くことを確認するテスト」であり、
もう1つは「使う側が複雑なページを使いこなす方法」です。
これらを解決する方法の1つが、2017年にリリースされたPuppeteerです。
Puppeteerは、Node.jsで動くGoogle製のライブラリで、
JavaScriptを使って従来は難しかった
ブラウザ(Chromium&Chrome)のUIを自動操作できます。
■スクレイピング&Web操作自動処理を丁寧に解説!
本書では、Puppeteerの環境構築の手順から始まり、
スクレイピングとWeb操作の自動処理プログラミングを丁寧に解説しています。
さらに豊富な自動処理のサンプルプログラムと、
デバッグやエラー対応も解説しています。
これまで手動で行っていたWebサイトからのデータ取得や抽出、
SPA(Single Page Application)の動作チェックなどを
自動化したい方にお薦めの1冊です。
カバーイラストは、熱狂的なファンが多い漫画家・鶴田謙二氏!
目次
【本書の構成】
〈第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 基本的な文法と記法①[変数と関数]
3-4 基本的な文法と記法②[配列と要素の追加 /削除]
3-5 基本的な文法と記法③[ループと条件分岐]
3-6 同期処理と非同期処理①[コールバック関数]
3-7 同期処理と非同期処理②[Promiseを返す]
3-8 同期処理と非同期処理③[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: Unexpectedtokenエラー]
上記内容は本書刊行時のものです。