我正在使用PhantomJS从特定页面抓取数据。我停留的是等待UI从页面加载API中的其他数据后引导页面。它是这样的:
page.open(address, function() {
page.includeJs('JQuery', function(){
page.evaluate(function() {
var elements = $('.sample');
for ( i=0; i <= elements.length; i++ ) {
elements.eq(i).click();
waitForResponse()// ???
readDataFromUI();
//???
// profit!!!
}
})
});
});
由于我没有任何ApiKeys或ID要求,因此无法直接使用xhr。
以这种方式构建的页面UI,使得我一次只能展开一个元素并从中读取数据。因此,无法展开所有内容。
由于有15至30个异步查询,因此我无法识别它们,因此没有使用page.onResourceReceived。响应对象也代表没有用的块。
我还尝试过监听document.readyState,以防万一phantomjs not waiting for "full" page load和waitFor()函数在评价()环境中不存在。
似乎这里唯一的选择是等待ui渲染元素,然后进行下一个操作。我不知道该怎么完成。