0
0

More than 1 year has passed since last update.

Electron から Nightmare を使う

Posted at

Electron アプリケーションから Nightmare を使いたい時の方法。
スクレイピング中に動的HTMLが取れない場合などに。

Eramthgin を使う

Eramthgin を使うとちゃんと動く。
https://www.npmjs.com/package/eramthgin

npm install eramthgin

メインプロセスで呼び出す

基本的に nightmare と同じ。

main.js
const nightmare = require('eramthgin');
const n = new nightmare({
	show: true
});

preload.js に渡して処理を書く

main.js で global を経由して preload.js に渡す。

main.js
const mainWindow = new BrowserWindow({
	width: 1200,
	height: 600,
	webPreferences: {
		preload: path.join(__dirname, 'preload.js')
	}
});
global.mainWindow = mainWindow;
mainWindow.nightmare = n;

preload.js では global から取得して使う。

preload.js
const mainWindow = remote.getGlobal('mainWindow');
const nightmare = mainWindow.nightmare;

nightmare.goto('https://www.google.com/')
		 .insert('input[name=q]', 'what is google')
		 .click('input[name=btnK]')

preload.js から直接 nightmare を呼び出せなかったので、備忘録として。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0