Я использую nightmare.js для веб-скриптов на веб-сайте китайской электронной коммерции taobao (www.taobao.com/). Цель состоит в том, чтобы получить информацию о продукте. Код очень похож на yahoo example code, но результат всегда равен нулю. Я попытался вывести console.log для отладки и понял, что ошибка может зависеть от querySelector. Ниже приведен код, если у кого-то есть время, чтобы взглянуть. Действительно ценю это.не может вернуть document.querySelector с API-интерфейсом nightmare на node.js
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')', это даст вам все продукты на странице, если это то, что вы сделали после. – Keith
Используйте скриншот(), чтобы увидеть, что было показано на целевой странице во время выполнения оценки. Это должно дать вам представление о том, существует ли элемент, который вы пытаетесь прочитать, или нет. –