使用PhantomJS获取AdSense广告的DOM

时间:2014-12-30 21:02:10

标签: javascript phantomjs

什么人,

我的目标是获取AdSense广告的完整HTML代码,以便对其进行解析。 (不是动态js代码,而是显示给用户的结果HTML)。这样做有合理的理由。

我正在使用phantomJS和以下脚本:

//phantomjs
var page = require('webpage').create();
var url = 'http://www.domain.com/directory/';

page.open(url, function (status) {
    var js = page.evaluate(function () {
        return document;
    });
    console.log(JSON.stringify(js)); 
    phantom.exit();
});

但是,这只显示了javascript adsense代码,而不是HTML(实际广告)。

我做错了什么?

1 个答案:

答案 0 :(得分:1)

在捕获内容之前尝试稍等一下。广告通常是异步加载的,当PhantomJS认为页面已经加载时可能不会出现。

page.open(url, function(){
    setTimeout(function(){
        console.log(page.content);
        phantom.exit();
    }, 5000);
});

如果广告在一个框架中,那么您首先需要使用page.switchToFrame更改为框架上下文,并使用page.frameContent记录内容。

如果这没有帮助,请注册onConsoleMessageonErroronResourceErroronResourceTimeout事件。也许有错误。