[英]How to use document.querySelector and require with node.js and SQLite3
[英]cannot return document.querySelector with nightmare API on node.js
我在中国电子商务网站taobao(www.taobao.com/)上使用nightmare.js进行Web脚本编写。 目的是获取产品信息。 该代码与yahoo示例代码非常相似,但结果始终为null。 我尝试将console.log调试,并意识到错误可能出在querySelector上。 如果有人有时间看看下面的代码。 真的很感激。
var Nightmare = require('nightmare');
var nightmare = Nightmare({ show: true });
nightmare
.goto('https://www.taobao.com')
.type('form[action*="/search"] [name=q]', 'hellow kitty')
.click('form[action*="/search"] [type=submit]')
.wait(2000)
.evaluate(function () {
return document.querySelector('.row.row-2.title a')
})
.end()
.then(function (result) {
console.log(result)
})
.catch(function (error) {
console.error('Search failed:', error);
});
首先,最重要的是:仔细检查选择器并确保它们存在。
撇开这一点,问题在于return document.querySelector('.row.row-2.title a')
。 DOM列表(例如从document.querySelector
返回的列表)不能很好地序列化。 尝试在返回之前提取所需的结果-说您想从锚点获取HREF,您可以(从臀部)做类似的事情:
return Array.from(document.querySelector('.row.row-2.title a')).map(a=> a.href);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.