WEB Scrapingの情報は書籍を含めたくさんありますが,JavaScriptによって動的に生み出されるページのハンドリングに苦労しました.Selenium + PhantomJSが定番のようでしたが,うまくいかない場合が多く,人がマニュアルで行う操作を忠実に再現するアプローチが必要となる場合もあるようです.このような観点で,Chrome専用のPuppeteer(操り人形師の意味で,パピティアと発音)が有効でしたので,そのインストール方法と留意点をまとめておきます.こちらのページを参考にさせて頂きました.

Git for Windowsのインストール

Git-bashを使うため,Git for Windowsこちらのサイトからダウンロードし,デフォルトのままインストールします(ただし,デスクトップアイコンは作るを選択しておいた方が便利です).

nodistのインストール

nodistのGithubからNodistSetup-v0.8.8.exeをダウンロードし,普通にインストールします.インストールが完了しましたら,Git-bashのターミナルを起動し,以下のようにバージョンを確認します.

$ nodist -v
0.8.8

$ node -v
v8.11.1

$ npm -v
4.0.5

Node.jsのアップデート

次に,Git-bashを一度閉じ,再び起動します.再起動しないと,以下がうまくいきませんでした.こちらのサイトNode.jsStatusActive LTSとなっているもののReleaseバージョンを調べます.この記事を書いているときは,8.xとなっていました.以下のようにして,アップデートします.

$ nodist dist
  0.1.14
  0.1.15
  ...
  途中省略
  ...
  8.11.0
  8.11.1
  9.0.0
  9.1.0
  9.2.0
  9.2.1
  9.3.0
  9.4.0
  9.5.0
  9.6.0
  9.6.1
  9.7.0
  9.7.1
  9.8.0
  9.9.0
  9.10.0
  9.10.1
  9.11.0
  9.11.1
  10.0.0

8.xに相当する最新版は8.11.1であることが分かりましたので,これにアップデートします.

$ nodist 8.11.1

バージョンを確認しておきます.

$ node -v
v8.11.1

Yarnのインストール

以下のようにパッケージマネージャyarnをインストールします.

$ npm install -g yarn --scripts-prepend-node-path

WEB Scrapingを実行するフォルダを作成

実際にWEB Scrapingを実行する(JavaSCriptのコードを保存する)フォルダを以下のように用意します.

$ pwd
/c/dat/Puppeteer/mpos

Puppeteerのインストール

用意したフォルダに移動し,package.jsonを作成し,続けてPuppeteerをインストールします.

$ winpty yarn.cmd init -y
$ yarn add puppeteer

以上でインストールは終わりです.

JavaScriptを動かす

JavaScriptのコードを作成し(例えば,test.js),実行します.

$ node test.js

なお,AnacondaMinicondaのプロンプトでも同様にJavaScriptを実行できます.私はJupyter Notebook上でPythonからsubprocess経由でnodeを呼び出しています.