Ich möchte eine Taobao-Suchseite crawlen. Es handelt sich um eine durch JS-Rendering generierte Seite, daher habe ich mich dafür entschieden, sie mit PhantomJS zu crawlen. Beim Abrufvorgang ist jedoch ein Problem aufgetreten. Bei mehr als zwei Suchergebnissen können keine Daten abgerufen werden. Der Screenshot zeigt jedoch, dass die Daten normal geladen werden. Ich weiß nicht, ob es Taobao ist, das Einschränkungen auferlegt, oder ob etwas mit meinem Code nicht stimmt. Bitte helfen Sie mir, das Problem zu lösen.
var url = "https://ai.m.taobao.com/search.html?q=%E5%90%8D%E4%BA%BA%E7%91%9E%E8%A3%B32017%E5%A4%8F%E8%A3%85%E6%96%B0%E6%AC%BE%E5%A5%B3%E8%A3%85%E8%A3%99%E5%AD%90%E5%8F%8A%E8%86%9D%E9%95%BF%E6%AC%BE%E4%BF%AE%E8%BA%AB%E5%81%87%E4%B8%A4%E4%BB%B6%E5%8D%B0%E8%8A%B1%E9%9B%AA%E7%BA%BA%E8%BF%9E%E8%A1%A3%E8%A3%99&spm=a311n.7676424.1000.1&prepvid=201_10.184.72.34_159920160034_1496243285841&pid=mm_33231688_7050284_23466709&env&unid&hidebar&isout&clk1&smart&rb";
var page =require('webpage').create();
var fs = require('fs');
page.settings = {
javascriptEnabled: true,
loadImages: false,
webSecurityEnabled: false,
userAgent: 'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.137 Safari/537.36 LBBROWSER'
};
page.open(url,function (status) {
if (status !== 'success') {
console.log('Unable to access thewebsite');
} else {
window.setTimeout(function () {
page.render('example1.png');
var val = page.evaluate(function(){
var data = document.querySelectorAll('p.item-thumbnail a.item-intro');
if ( data instanceof Array ) {
return 1;
console.log(1)
for (var i = 0, len = data.length; i < len; i++) {
console.log(data[i].innerHTML);
}
} else if ( data instanceof Object ) {
var description = "";
for (var i in data) {
description += i + " = " + data[i] + "\n";
}
return description;
// console.log(nextSibling(data).innerHTML);
} else {
return data;
}
});
console.log('The register address:' + val);
phantom.exit();
}, 1000);
};
});
?黑人问号