1
我试图从指定的网站上刮取信息。本网站使用认证首先,这样的AI使用zombie.js:用node.js处理ajax响应
var Browser = require("zombie");
var browser = new Browser();
browser.visit("https://*****login.aspx", function(){
browser.fill('#user', '*****');
browser.fill('#pwd', '*****');
var button = browser.querySelector('#btnSubmit');
browser.fire('click', button, function(){
//scraping main.aspx
});
});
它的工作,我可以刮main.aspx:有一个<table>
,containig有关新的消息的信息(从,日期,主题),问题出现在这里:主题字段是可点击的,点击它会使新窗口显示实际的消息。但它是一个ajaxgrid,当我执行一个点击时:
var field = browser.querySelector('#VeryLongIdOfTheField');
browser.fire('click', field, function(){
console.log(browser.querySelector('#VeryLongIdOfTheFieldContainingTheMessage').innerHTML);
});
它返回一个错误消息,说未定义没有innerHTML。我想它是因为这个动作处理了一些Ajax魔法。我在这个js/nodejs/jquery/..世界中是新手,需要一些帮助来照亮我。
感谢您的回复!我已经尝试过setTimeout,但没有使用它。我尝试了你建议的循环,但也没有工作。但是我不确定问题是这样的,因为僵尸API提到fireEvent的回调等待资源,如XHR资源,iframe。 – sifear