Zombie.js 检查动态更新
Zombie.js check dynamic updates
我正在尝试从不断变化的网页中抓取内容。我已经能够使用 PhantomJS 来实现这个但是想要一个更轻量级的解决方案。以下代码在第一次打印到控制台时获得了正确的值。但是,在接下来的迭代中,将打印相同的值。有什么想法吗?
var Browser = require("zombie");
var assert = require("assert");
// Load the page from localhost
browser = new Browser()
browser.visit("http://www.timeanddate.com/worldclock/usa/los-angeles", function () {
setInterval(function(){
console.log(browser.text('#ct'));
},10000);
});
注意上面的例子纯粹是一个例子。我知道这是在洛杉矶打发时间的最无效率的方式。
一旦您调用 browser.visit()
,browser
就会存储响应,但除非您多次调用它,否则响应不会改变。自己看看:
browser.visit("http://www.timeanddate.com/worldclock/usa/los-angeles", function () {
console.log(browser.html()); // will print the HTML to stdout
});
所以您可能想要多次调用 browser.visit()
,也许在 setInterval()
内部(尽管那里可能有更强大的解决方案)。
我重新修改了你的代码:
var Browser = require("zombie");
var assert = require("assert");
var browser = new Browser();
setInterval(function () {
browser.visit("http://www.timeanddate.com/worldclock/usa/los-angeles", function () {
console.log(browser.text('#ct'));
});
}, 10000);
我正在尝试从不断变化的网页中抓取内容。我已经能够使用 PhantomJS 来实现这个但是想要一个更轻量级的解决方案。以下代码在第一次打印到控制台时获得了正确的值。但是,在接下来的迭代中,将打印相同的值。有什么想法吗?
var Browser = require("zombie");
var assert = require("assert");
// Load the page from localhost
browser = new Browser()
browser.visit("http://www.timeanddate.com/worldclock/usa/los-angeles", function () {
setInterval(function(){
console.log(browser.text('#ct'));
},10000);
});
注意上面的例子纯粹是一个例子。我知道这是在洛杉矶打发时间的最无效率的方式。
一旦您调用 browser.visit()
,browser
就会存储响应,但除非您多次调用它,否则响应不会改变。自己看看:
browser.visit("http://www.timeanddate.com/worldclock/usa/los-angeles", function () {
console.log(browser.html()); // will print the HTML to stdout
});
所以您可能想要多次调用 browser.visit()
,也许在 setInterval()
内部(尽管那里可能有更强大的解决方案)。
我重新修改了你的代码:
var Browser = require("zombie");
var assert = require("assert");
var browser = new Browser();
setInterval(function () {
browser.visit("http://www.timeanddate.com/worldclock/usa/los-angeles", function () {
console.log(browser.text('#ct'));
});
}, 10000);