在PhantomJS中伪造Refer Header是行不通的。[英] Faking the Referer Header in PhantomJS is doesn't work

问题描述

我想让我的代码伪造分析系统(如谷歌分析)中的引用头,但它不起作用.我添加了 '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();

我从这个问题 https://stackoverflow.com/a/42468998/4999509 中得到了这段代码并且它有效像一个魅力,尊重编码器 - Flash Thunder!

推荐答案

这适用于 Google Analytics,

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

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

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

本文地址:https://www.itbaoku.cn/post/1740100.html