Puppeteer on WSL
Created|Updated
https://github.com/puppeteer/puppeteer/issues/1837
WSL のPuppeteer からWindows にインストールされたChrome(chrome.exe) を起動します。
WSL 側にインストールするパッケージが少なくてすみそうです。
環境
- WSL1(Ubuntu 18.04) on Windows 10
- node v13.6.0
- npm 6.13.4
- puppeteer
構築
node のインストール
$ sudo apt update && sudo apt upgrade $ sudo apt install nodejs npm $ sudo npm clean all $ sudo npm install n $ sudo n latest $ sudo ln -sf /usr/local/bin/node /usr/bin/node $ sudo apt purge nodejs npm $ sudo apt clean all $ sudo apt autoremove
|
puppeteer のインストール
PATH の追加
$HOME/.profilePATH=/mnt/c/Program\ Files\ \(x86\)/Google/Chrome/Application:$PATH
|
スクリプト
$HOME/crawl.jsconst puppeteer = require('puppeteer'); const rimraf = require('rimraf');
const USER_DATA_DIR = 'C:\\temp\\puppeteer_user_data'; const USER_DATA_DIR_WSL = '/mnt/c/temp/puppeteer_user_data';
const PROXY_URL = 'http://192.168.0.100:8000'; const PROXY_USER = 'proxy-user-string'; const PROXY_PASSWORD = 'proxy-password-string';
async function main() { const browser = await puppeteer.launch({ executablePath: 'chrome.exe', userDataDir: USER_DATA_DIR, headless: false, args: [ '--no-sandbox', '--disable-setuid-sandbox', `--proxy-server=${PROXY_URL}` ] }); const page = await browser.newPage();
await page.authenticate({PROXY_USER, PROXY_PASSWORD});
await page.goto('https://www.example.com');
await browser.close(); })().finally(() => rimraf(USER_DATA_DIR_WSL));
|
多分、こんな感じで動いた。
利用