在PhantomJS中伪造Referer头并不';行不通

在PhantomJS中伪造Referer头并不';行不通,phantomjs,Phantomjs,我想让我的代码在分析系统(如google analytics)中伪造refferer头,但它不起作用。我已经添加了'var settings={…/…}'和'page.onLoadStarted=function(){page.customHeaders={};'以及'page.open(…,settings,…),但它仍然像分析中的直接流量一样被识别。下面是代码: var page = require('webpage').create(); var settings = { header

我想让我的代码在分析系统(如google analytics)中伪造refferer头,但它不起作用。我已经添加了'var settings={…/…}'和'page.onLoadStarted=function(){page.customHeaders={};'以及'page.open(…,settings,…),但它仍然像分析中的直接流量一样被识别。下面是代码:

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();
var page=require('webpage').create();
变量设置={
标题:{
“推荐人”:http://google.com"
}
};
var url=['http://china.com/','http://usa.com/','http://emirates.com/'];
var i=0;
函数OpenPage(){
setTimeout(函数(){
page.onLoadStarted=函数(){
page.customHeaders={};
};
页面打开(URL[i]、设置、功能(状态){
如果(状态=‘成功’){
render('example'+i+'.png');
}
i++;
如果(i试试这个:

var page = require('webpage').create();

page.onLoadStarted = function() {
    page.customHeaders = {};
};

var urls = ['http://china.com/','http://usa.com/','http://emirates.com/'];
var i = 0;

function OpenPage(){
    setTimeout(function(){
        page.customHeaders = {
            "Referer": "https://google.com"
        };
        page.open(urls[i], function(status) {
            if (status == 'success') {
                    page.render('example' + i + '.png');
            }
            i++;
            if(i <= urls.length - 1){ 
                OpenPage();
            }else{
               phantom.exit();
            }
        });
    },5000);
}    
OpenPage();
var page=require('webpage').create();
page.onLoadStarted=函数(){
page.customHeaders={};
};
var url=['http://china.com/','http://usa.com/','http://emirates.com/'];
var i=0;
函数OpenPage(){
setTimeout(函数(){
page.customHeaders={
“推荐人”:https://google.com"
};
页面打开(URL[i],函数(状态){
如果(状态=‘成功’){
render('example'+i+'.png');
}
i++;

如果(i这对谷歌分析有用

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

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

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

您还可以添加以下内容以输出请求头,实际发送:page.onResourceRequested=函数(requestData){console.log('requestData:'+JSON.stringify(requestData));};对我来说太糟糕了——我对JS是新手)谢谢!您的代码正在运行。但是如果我尝试使用代理运行phantomjs myscript,js,我在分析中找不到任何引用者。您现在知道了吗?我认为谷歌将Phantom视为一个机器人,这就是为什么在分析中没有结果的原因。请尝试设置用户代理。