近刊検索 デルタ

2018年9月19日発売

秀和システム

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ハッカソン最優秀賞」を受賞。
酒井 一成(サカイ イッセイ)
フリーランスシステムエンジニア。中学時代にテキストエディタのみで ホームページを作成し、サイト上で小規模なCGIゲームを運営。 コンピュータ好きが転じて、大学では情報工学を専攻。 卒業後に上京し、システム会社に就職。業務命令で嫌々ながら参加した 社外勉強会で現場エンジニアの熱にあてられ、その後は積極的に参加するようになる。 同時に社内で有志による勉強会を立ち上げ、外で学び、内で共有する形を模索する。 Uターン転職を経て独立し、現在はシステム開発を中心とした幅広い分野で活動中。

※近刊検索デルタの書誌情報はopenBDのAPIを使用しています。

※近刊検索デルタの書誌情報はopenBDのAPIを利用しています。