出版社内容情報
Node.jsで動く最新のWebブラウザ自動化ライブラリで、
データ収集や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エラー]
ヴェネチア冒険團[ヴェネチアボウケンダン]
著・文・その他
美崎 薫[ミサキ カオル]
著・文・その他
小原 亮一[オバラ リョウイチ]
著・文・その他
酒井 一成[サカイ イッセイ]
著・文・その他
内容説明
Node.jsで動く最新のWebブラウザ自動化ライブラリで、データ収集やWeb開発、動作テストを効率化!Node.jsバージョン8&10/Puppeteerバージョン1.6.0対応。
目次
第1部 準備編(Puppeteerの基礎;実行環境の準備;JavaScriptの基礎知識)
第2部 基本編(スクレイピングの自動化;Web操作の自動化;複雑なWeb操作の自動化)
第3部 実践編(自動化処理のサンプルプログラム;テスト駆動開発;デバッグ)
著者等紹介
美崎薫[ミサキカオル]
未来生活デザイナー。必要なものは作ることをモットーに、住宅、書斎、机を始め、多数のハードウェア、ソフトウェアをプロデュース。IPA未踏ソフトウェアで、カレンダー、メモ、「重ねた紙」などをデジタル化した次世代環境「PilePaperFile」を提示した。これまでにリリースしたソフトウェアは200本
小原亮一[オバラリョウイチ]
中学時代にN88 BASICをマスター。ITへ興味をもち、高校でC++、大学でHTML/CSS/JavaScript/VBA/WSHを習得した早熟のエンジニア。システム会社に入社後は、大規模Java案件の基盤構築を手がけた。プロジェクトマネージャー/アーキテクトとして、新技術の採り入れ/技術ベースアップ/開発スタイルの改善を継続的に実施する永遠の中二病。近年ではIoTの推進/AWSの利活用促進をとおして、SaaSの開発/マネージメント/運用/顧客提案/営業支援も行っている。IFTTT、Amazon Dash Button、Amazon Echoをはじめとしたスマートホームに関心がありハッキング中
酒井一成[サカイイッセイ]
フリーランスシステムエンジニア。中学時代にテキストエディタのみでホームページを作成し、サイト上で小規模なCGIゲームを運営。コンピュータ好きが転じて、大学では情報工学を専攻。卒業後に上京し、システム会社に就職。業務命令で嫌々ながら参加した社外勉強会で現場エンジニアの熱にあてられ、その後は積極的に参加するようになる。同時に社内で有志による勉強会を立ち上げ、外で学び、内で共有する形を模索する。Uターン転職を経て独立し、現在はシステム開発を中心とした幅広い分野で活動中(本データはこの書籍が刊行された当時に掲載されていたものです)
※書籍に掲載されている著者及び編者、訳者、監修者、イラストレーターなどの紹介情報です。
感想・レビュー
※以下の感想・レビューは、株式会社ブックウォーカーの提供する「読書メーター」によるものです。
river125
Q
katono