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);