Quantcast
Channel: Node.jsタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 8873

Puppeteer(ぱぺてぃあ)、Headress Recorderで自動化が進んだ

$
0
0

実現させたいこと

とあるサイトのマイページから、データを毎日ダウンロードしたい。しかし、ダウンロードには1,000クリック程度必要。
画面が遷移してもURLが変わらないので、SeleniumやPRAでの実現は難しい。
Chrome操作の自動化ができ、さらにExcelマクロのような録画ツールもあるそうなので、puppeteerを試してみた。
環境構築と習得に1日ほどかかったが、使いやすくて感動!

puppeteerとは

Chromeブラウザを操作できるNode.jsのライブラリ
ヘッドレスブラウザを使用できるので高速

Headless Recorderを使う

HeadlessRecorderをChromeの拡張機能に追加。
録画ボタンを押して、録画したい操作をすると、Puppeteerコードを出力してくれる。
puppeteerで必要なidやclassを調べる手間が省けて便利。

Headless Recorderでできなかったこと

①録画が上手くいかない箇所があった

idやclassが一意でない箇所で、コードに落とせていない操作があった。
お客様番号を使って指定できそうだったので、お客様番号を含むXpathで指定した。

お客様番号のクリック
constcustomerNumber='123456';//文字列型で店舗番号を指定constcustomerLink="//a[contains(@onclick,customerNumber)]";//XPathを検索awaitpage.waitForXPath(customerLink);constcustomerLinkClick=awaitpage.$x(customerLink);awaitcustomerLinkClick[0].click();

②ダウンロード先の指定

ダウンロード先を指定
constdownloadPath='C:\\yyy\\xxx\\test';// 絶対パスで指定awaitpage._client.send('Page.setDownloadBehavior',{behavior:'allow',downloadPath:downloadPath});

感想

・学習コストは低め。PythonとGASしか使ったことがない私でも、環境の設定からはじめて、1日あれば使えた。Headless Recorderが偉大。

参考

Puppeteer入門(本)
HeadlessRecorder


Viewing all articles
Browse latest Browse all 8873

Trending Articles