» » Немного про накрутку счетчиков посещений сайтов

 

Немного про накрутку счетчиков посещений сайтов

Автор: admin от 28-01-2018, 22:40, посмотрело: 242

Немного про накрутку счетчиков посещений сайтов


В этой статье я хочу рассказать как накручиваются счетчики посещений на сайтах, подделываются демография, местоположение и другие параметры мониторинговых сервисов.

PhantomJS — WebKit в консоли.


Напишем простой скрипт, который нам засчитает уникальный визит.


var page = require('webpage').create();
var system = require('system');
var url = system.args[1];

page.open(url, function(status) {
    console.log("Status: " + status);
    phantom.exit();
});

Некоторые счетчики даже засчитают посещение, но это не совсем то, что ожидалось.


Установим User Agent и Referer(страница, с которой совершен переход).


Первое делается довольно просто:


var userAgent = 'Custom UA';
page.settings.userAgent = userAgent;

Со второй задачей все немного сложнее. Дело в том, что если в http header просто прописать Referer, то счетчики не засчитают нам переход. Для «настоящего» перехода нам нужно именно кликнуть по ссылке, обработав тем самым событие js.



Забавно, что с помощью page.setContent мы эмулируем домен и содержимое странички.
По сути можно просто взять js счетчиков, положить их в тело странички и проводить все манипуляции на своем веб сервере.


Меняем разрешение экрана
Теперь изменим дополнительные параметры, такие как: разрешение экрана, количество цветов.
В PhantomJS есть функция, с помощью которой можно модифицировать трафик «на лету».


page.new_resolution = "800x600x24".split('x'); // Новое разрешение
page.onResourceRequested = function(requestData, networkRequest){  
    // 1920*1080*32 -  стандартные параметры для моего PhantomJS
    var newUrl = requestData.url.replace("1920*1080*32", page.new_resolution[0] + "*" +     page.new_resolution[1] + "*" + page.new_resolution[2]);

    // Меняем разрешение под другие счетчики
    newUrl  = requestData.url.replace("1920", page.new_resolution[0]); 
    newUrl = newUrl.replace("1080", page.new_resolution[1]); 
    newUrl = newUrl.replace("32-bit", page.new_resolution[2] + "-bit"); 
    networkRequest.changeUrl(newUrl); // Производим изменения
};

К сожалению, функция обрабатывает только GET запросы, но для эксперимента этого хватило.



Если все делать с пустыми cookie, то счетчики заблокируют просмотры и кинут нам бан.
Причем cookie должны быть относительно «старые»(сутки минимум).
Я написал граббер и «погулял» по популярным сайтам в сети, сохранив связку с cookies.
В PhantomJS cookie подключаются с ключом --cookies-file.


phantomjs --cookies-file=/path/to/cookies.txt


С демографией все довольно просто: надо авторизоваться на каком-нибудь популярном ресурсе(я взял почтовые аккаунты mail.ru), после этого наш «пользователь» будет иметь пол и возраст.
Что удивительно, когда я «прогуливался» по сайтам, почти с каждого из них ко мне сохранялась кука от doubleclick.net. Она отвечает за рекламные рекомендации(в 2007 эту компанию выкупил Google за 3,1 млрд долларов).


Меняем местоположение


С подменой местоположения нет никакой магии, надо менять ip.
PhantomJS поддерживает прокси; нужно запустить программу с ключом --proxy.


phantomjs --proxy=ip:port


Итог


Я поставил популярные счетчики, такие как Google Analytics, Яндекс Метрика и Liveinternet.
Все они засчитали просмотр. В Яндекс Метрике можно посмотреть наличие роботов, там она увидит фейковые запросы.


Кому интересно: готовый скрипт.



Источник: Хабрахабр

Категория: Программирование

Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Добавление комментария

Имя:*
E-Mail:
Комментарий:
Полужирный Наклонный текст Подчеркнутый текст Зачеркнутый текст | Выравнивание по левому краю По центру Выравнивание по правому краю | Вставка смайликов Выбор цвета | Скрытый текст Вставка цитаты Преобразовать выбранный текст из транслитерации в кириллицу Вставка спойлера
Введите два слова, показанных на изображении: *