我试图通过按钮点击在网页上输出nightmareJS的输出 使用HTML CSS和JS。
我的噩梦.JS:
var Nightmare = require('nightmare');
var nightmare = Nightmare({ show: false})
nightmare
.goto('https://en.wikipedia.org/wiki/Red_Hat_Enterprise_Linux')
//.wait('#entry-content')
.evaluate(function () {
var ht = document.querySelector('#toc > ul').innerText;
//return ht[0];
//return (ht.split(/\r\n|\r|\n/).length);
//check = document.querySelectorAll('#bodyblock > ul >li').length;
//return check;
//var ht1 = document.querySelectorAll('#bodyblock > ul > li ').innerText[5];
//return ht1;
return ht;
})
.end()
.then(function (result) {
console.log(result)
})
.catch(function (error) {
return('Search failed:', error);
});
我试过了: 示例:
<script>
function scrapedData(){
document.getElementById("nighmareJSOutput").innerHTML = result;
}
</script>
<body>
<div>
<p id="nighmareJSOutput"> </p>
<button onclick="scrapedData()"> click me </button>
</div>
这也不起作用。
请提供任何提示或建议。
答案 0 :(得分:1)
我在评论示例中向您提供了请求。如果您仍然遇到问题,请提出问题。
const express = require('express')
const Nightmare = require("nightmare")
const app = express()
app.get('/', async function (req, res) {
const nightmare = Nightmare({ show: false})
const url = 'https://en.wikipedia.org/wiki/Red_Hat_Enterprise_Linux'
await nightmare.goto(url)
await nightmare.wait(2000)
const result = await nightmare.evaluate(
() => document.querySelector('#toc > ul').innerText
)
res.send(result)
})
app.listen(3000, function () {
console.log('Example app listening on port 3000!')
})