【发布时间】:2017-01-04 07:32:03
【问题描述】:
我在中国电子商务网站淘宝(www.taobao.com/)上使用nightmare.js 编写网页脚本。目标是获取产品信息。该代码与yahoo example code 非常相似,但结果始终为空。我尝试将 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);
});
【问题讨论】:
-
刚刚尝试访问该网站并搜索
hello kitty,.. 那里没有.row甚至.row-2类。但是如果我这样做document.querySelectorAll('.item')这将给你页面上的所有产品,如果那是你想要的。 -
使用 screenshot() 查看执行评估时目标页面上呈现的内容。如果您尝试读取的元素是否存在,这应该可以让您清楚地了解。
标签: javascript node.js cloud9-ide nightmare