windows10上のUBUNTUでgoogle chromeをプログラム制御自動化してみる
windows10上のUBUNTUでgoogle chromeをプログラム制御してみる
Windows 10 バージョン1709(Windows 10 Fall Creators Update、ビルド16299)以降Windows10でLinuxを実行することができるWSL(Windows Subsystem for Linux)が利用できるようになり、WindowsでもXAMPPやHyper-Vを使わずにPHPが編集・プレビュー可能になりました!開発者にとっては嬉しいニュースですね。WSLの立ち位置としてはXAMPPよりLINUXに近く、Hyper-Vよりメモリ効率がよいといった所が長所になるでしょうか。
このWSL機能を使ってgoogle chrome(正確にはヘッドレスクローム)をプログラム制御するまでの手順を記録しておきます。ヘッドレスブラウザの利点としては最近増えて来たJavaScriptを多用したようなサイトのスクレイピングが出来るようになったりします。curlではできなかったことが出来るようになりますね。
JavaScriptパッケージマネージャー「Yarn」をインストール
# curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add - # echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list # sudo apt-get update && sudo apt-get install yarn
「Node.js」をインストール
# curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash - # sudo apt-get install -y nodejs
ヘッドレスクロームを走らせるフォルダを制作
# cd /mnt/c/html # mkdir less # cd less
yarnでヘッドレスクロームを設置
# yarn init # yarn add chromeless
簡単なテストプログラムを書いてみます
# vi example.js
const { Chromeless } = require('chromeless') async function run() { const chromeless = new Chromeless() await chromeless .setUserAgent('Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.63 Safari/537.36') .goto('https://www.yahoo.co.jp/') .type('hello','#srchtxt') .click('#srchbtn') const screenshot = await chromeless.screenshot({filePath:'/mnt/c/html/hello.png'}) console.log(screenshot) } run().catch(console.error.bind(console))
起動するとgoogleChromeがひとりでに動き出します
ログインしたりスクリーンショットをとったりスクレイピングしたり
いろいろなことが出来ますよ
# node hello.js