【问题标题】:Zombie.js check dynamic updatesZombie.js 检查动态更新
【发布时间】:2015-03-28 01:17:33
【问题描述】:

我正在尝试从不断变化的网页中抓取内容。我已经能够使用 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);
});

请注意,上面的示例纯粹是一个示例。我知道这是在洛杉矶打发时间的最低效的方式。

【问题讨论】:

    标签: node.js zombie.js


    【解决方案1】:

    一旦您调用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);
    

    【讨论】:

    • 这是我所期望的。我希望我不必提出多个请求。谢谢。
    猜你喜欢
    • 2016-05-14
    • 2018-06-09
    • 1970-01-01
    • 2018-12-15
    • 2021-08-05
    • 2023-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多