出版社を探す

Puppeteer入門

スクレイピング+Web操作自動処理プログラミング

他著:ヴェネチア冒険團
他著:美崎 薫
他著:小原 亮一

紙版

内容紹介

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

著者略歴

他著:ヴェネチア冒険團
ヴェネチア制覇を目標にかかげ、團長・美崎薫、小原亮一、
酒井一成の3名体制でスタート。団員募集中。次期探検候補地は、
杜王町、ゴッサムシティ、麻布十番、宮崎県、BOOM TOWN。
他著:美崎 薫
未来生活デザイナー。必要なものは作ることをモットーに、
住宅、書斎、机を始め、多数のハードウェア、ソフトウェアをプロデュース。
IPA未踏ソフトウェアで、カレンダー、メモ、
「重ねた紙」などをデジタル化した次世代環境「PilePaperFile」を提示した。
これまでにリリースしたソフトウェアは200本。
主な著書に『手で撮るようにわかるデジタルカメラ徹底活用術』(二期出版)、
『人に聞けないパソコン何でも相談』(日経新聞社)、
『パソコンデータの捨て方 残し方 まとめ方』(青春出版社)、
『デジカメ200%徹底的活用術』(KKベストセラーズ)、
『ユビキタスがわかる本』(オーム社)、
『ライフログ入門』(東洋経済新報社)、
『記憶する道具』(NTT出版)などがある。
他著:小原 亮一
中学3年生のときにN88 BASICを制覇。ITに興味をもち、高校でC++、
大学でHTML、CSS、JavaScript、Visual Basic、WSHを習得した早熟のエンジニア。
システム開発会社に入社後は、大規模Java案件の基盤構築を手がけたあと、
プロジェクトマネージャー/アーキテクトとして新技術の採り入れ、
技術ベースアップ、開発スタイルの改善を継続的に実施する永遠の中二病。
最近では、IoT利活用やAWSを活用したSaaSの開発/マネージメント/運用/
顧客提案/営業支援も行っている。IFTTT、Amazon Dash Button、Amazon Echoを
はじめとしたスマートホームに関心があり、ハッキング中。
2017年9月に温度センサーとAWSを組み合わせたシステムで
「ia-cloudハッカソン最優秀賞」を受賞。

ISBN:9784798055206
出版社:秀和システム
判型:B5変
ページ数:256ページ
定価:2800円(本体)
発行年月日:2018年09月
発売日:2018年09月20日
国際分類コード【Thema(シーマ)】 1:UB