我正在尝试从不断变化的网页中抓取内容。我已经能够使用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);
});
请注意,上面的示例纯粹是一个示例。我知道这将是在洛杉矶度过最低效的方式。
答案 0 :(得分:0)
调用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);