私はphantomjsとwebdriverioを使ってjavascriptによって読み込まれたWebページを取得してレンダリングし、後でCheerioによって解析されます。私は私が気づくprogram.kill()
を呼び出していてもphantomJSプロセスは、program.kill()を呼び出した後、バックグラウンドで動作し続けます。
import phantomjs from 'phantomjs-prebuilt'
const webdriverio = require('webdriverio')
const wdOpts = {
desiredCapabilities: {
browserName: 'phantomjs'
}
}
async parse (parseUrl) {
return phantomjs.run('--webdriver=4444').then(program => {
return webdriverio.remote(wdOpts)
.init()
.url(parseUrl)
.waitForExist('.main-ios', 100000)
.pause(5000)
.getHTML('html', true)
.then((html) => {
program.kill()
return html
})
})
}
そのプロセスのリストでphantomjs、それはRAMとCPUのかなりを使用しない: は、ここにそのためのコードです。
なぜプロセスが終了しないのだろうか。
答えてくれてありがとう、私はこれを実装する方法がわからない。私はノードアプリケーションを実行しているので、単純に 'npm install'を行い、スクリプト内から' phantomjs'を要求します。 私はスタンドアロンサーバーを使用していないので、これが可能かどうかはわかりません –