伪装PhantomJS中的Referer Header是行不通的

时间:2017-02-26 19:09:13

标签: phantomjs

我想让我的代码伪造分析系统中的refferer标头(例如谷歌分析),但它不起作用。我添加了' var settings = {... // ...}'并添加' page.onLoadStarted = function(){page.customHeaders = {};'并添加 - ' page.open(...,设置,...',但它仍然像分析中的直接流量一样被识别。以下是代码:

var page = require('webpage').create();
var settings = {
  headers: {
   "Referer": "http://google.com"
  }
};
var urls = ['http://china.com/','http://usa.com/','http://emirates.com/'];
var i = 0;

function OpenPage(){
    setTimeout(function(){
        page.onLoadStarted = function() {
    page.customHeaders = {};
};
        page.open(urls[i],settings, function(status) {
            if (status == 'success') {
                    page.render('example' + i + '.png');
            }
            i++;
            if(i <= urls.length - 1){ 
                OpenPage();
            }else{
               phantom.exit();
            }
        });
    },5000);
}    
OpenPage();

我从这个问题https://stackoverflow.com/a/42468998/4999509得到这个代码,它就像一个魅力,尊重编码器 - 闪电迅雷!

2 个答案:

答案 0 :(得分:1)

试试这个:

SalesReport.where(date: SalesReport.select('MAX(date)'))

答案 1 :(得分:1)

这适用于Google Analytics,

var settings = {
    headers: {
        "Referer": "http://www.google.com/"
    }
};

page.open(urlToVisit, settings, function (status) {
    ...
}

基本上,您需要使用页面上下文中page.open()函数的第二个参数使您的自定义引用可用,以便Google Analytics代码能够读取它