Показаны сообщения с ярлыком программирование. Показать все сообщения
Показаны сообщения с ярлыком программирование. Показать все сообщения

пятница, июля 06, 2007

Отслеживание Adsense кликов через Analytics

1. Скачать скрипт - astrack.js
2. Зайти в Google Analytics и настраить цель для нужного сайта. URL - /asclick и любое название, например “Adclick”. Сам урл существовать не должен, это дело возьмет на себе джаваскрипт.
3. Закачать astrack.js на сервер и вставить код - <script src="/astrack.js" type="text/javascript"></script> в футер сайта.

Подробней тут: http://stwinnie.com/tracking-adsense-clicks-using-google-analytics/.
Пошёл пробовать.

вторник, мая 29, 2007

Маскируем скрипт - прикидываемся браузером

В PHP есть супермощный класс CURL - который позволяет полностью эмулировать соединения с различными параметрами. С помощью небольшого тюнинга можно добиться, что наш скрипт будет неотличим от браузера управляемым человеком.

Зачем это нужно? Опыт показывает, что, например, поисковые системы - скрипту эмулирующему браузер перекрывают кислород намного позже.

Чем браузер отличается от скрипта? Он передаёт строку юзер-агента, сохраняет и отдаёт куки, передаёт сточку реферера (адрес страницы откуда пришли) - мы будем делать то же самое.

Простейший способ использования CURL:

$url = "http://www.site.com";
$ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

$str = curl_exec($ch);

curl_close($ch);


Текст страницы оказывается в переменной $str - с ним потом можно делать всё что угодно.

Теперь тюнингуем наш простейший скрипт.

1. Добавляем сточку юзер-агента

$user_agent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322)";
curl_setopt($ch, CURLOPT_USERAGENT, $user_agent);


Строчку юзер-агента можно вставить любого популярного браузера. Это - для Microsoft Outlook 6.0. Также браузер часто передаёт версию ОС и некоторые параметры - например тут версию .NET.

2. Если вызываем несколько страниц на сайте, сохраняем и отдаём куки


$cookie_file = " ..тут вставляем путь к файлу ..";
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file);
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file);


Многие сервисы "отсеивают" скрипты - устанавливая, а затем запрашивая переменную в куки. Путь к куки файлу должен быть полный. При запуске скрипта - желательно удалить файл куки, оставшийся от предыдущей работы скрипта. Также для файла сохраняющего куки, или для папки куда он сохраняется - должны стоять права на запись.

3. Передаём реферера.

Реферер - это адрес страницы, указывающий откуда пришёл пользователь, т.е. адрес страницы на которой была ссылка или форма, действие которой привело на текущую страницу.

curl_setopt($ch, CURLOPT_REFERER, "http://site.com");

Для чего это нужно? Некоторые сервисы могут его проверять и делать определённые выводы. Например, для парсинга страниц результатов поиска Google - можно установить реферер http://google.com - т.е. мы показываем наш эмулятор браузера - "пришёл" на страницу с результатами поиска с главной страницы.

4. Делаем небольшую паузу между запросами

Юзер не кликает страницы друг за другом, а просматривает их через определённое время, поэтому, в случае, если запрашиваем много страниц циклом - нужно обязательно вставить небольшую паузу.

sleep(5);

Также можно сделать случайную паузу, например от 2 до 10 секунд.

sleep( rand(2,10) );

5. Использование прокси

Чтобы совсем замаскировать следы - можно использовать прокси.

curl_setopt($ch, CURLOPT_PROXY, "111.222.333.444:5555");

Нужно удалять файл куки перед сменой прокси.


Инструкции для эмуляции браузера с использованием CURL получаются следующие:

$url = "http://www.site.com";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

$user_agent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322)";
curl_setopt($ch, CURLOPT_USERAGENT, $user_agent);

$cookie_file = " ..тут вставляем путь к файлу ..";
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file);
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file);

curl_setopt($ch, CURLOPT_REFERER, "http://site.com");
curl_setopt($ch, CURLOPT_PROXY, "111.222.333.444:5555"); //Прокси - если необходимо

$str = curl_exec($ch);
curl_close($ch);

...

sleep( rand(2,10) );

четверг, мая 17, 2007

Как вставить JavaScript в шаблоны Blogger'a

Редактировать шаблоны Blogger'а после его недавнего обновления, стало сложней. Если в шаблоне будет ошибка, он не будет сохраняться. Просто вставить JavaScript код (например Google Adsense, или редирект какой-нибудь) не получиться, чтобы шаблон сохранился, нужно его чуть модифицировать.

Вот например, для примера возьмём такой код - он выводит сообщение, и HTML код ссылки

<script language="'javascript'">
alert("Привет пепельница! Это 'работающий' JS код");
document.write('<a href="http://www.google.com/">Это код ссылки вставленный с помощью JS</a>');
</script>


Действия такие, открываем в меню Blogger'a вкладку Template, далее Edit HTML
В коде шаблона ищем место, куда мы хотим вставить JavaScript код (например перед ).

Затем меняем внутри тегов script, следущие символы:
одинарные кавычки на - &#39;
двойные кавычки на - &quot;
открывающую кавычку тега на - &lt;
закрывающую кавычку тега на - &gt;

Должно получиться вот так:

<script language='javascript'>
alert(&quot;Привет пепельница! Это &#39;работающий&#39; JS код&quot;);
document.write('&lt;a href=&quot;http://www.google.com&quot;&gt;Это код ссылки вставленный с помощью JS&lt;/a&gt;&#39;);
</script>


Вставляем, сохраняем, открываем блог, смотрим как работает =)
В коде вызова Google Adsense достаточно поменять двойные кавычки.

пятница, мая 11, 2007

Как поисковики понимают JS

Полезное исследование - наткнулся только сейчас.

http://www.seoweblog.ru/archives/54

Как поисковики понимают JavaScript. Авторы исследовали разные виды JS редиректа - и по их выводам, поисковики умеют выполнять и расшифровывать достаточно сложные редиректы состоящие из зашифрованных JS конструкций, но переходят по редиректам - если там используется объектная модель браузера - например, функции форматирования и обработки HTML на странице, функции обработки действий мышки и другие.

вторник, декабря 05, 2006

Подробный референс по javascript

Отличный туториал по динамическому HTML - управлению элементами с помощью Javascript. Искал, как добавлять позиции в выпадающий список (select) из дочернего окошка - нашёл только тут.

http://www.mredkj.com/tutorials/htmljs.html

среда, октября 04, 2006

PHP: CURL и SSL

Вчера делал скрипт, выдирающий статистику c сайта с SSL. Оказалось достаточно просто. Добавляем одну строчку - curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);. Как бы это не очень правильно - защищённость SSL соединения не проверяется, но мне это было не нужно. И ещё в php должен быть подключён модуль open_ssl.

Весь скрипт работы CURL'a выглядит примерно так:

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://site.com/page.html");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
$str = curl_exec($ch);
curl_close($ch);


Затем делаем с $str - что нам хочется.

вторник, сентября 26, 2006

Реализация многопоточности в PHP

Наткнулся на скрипт для реализации многопоточности с помощью неблокирующихся сокетов в PHP: http://www.stableversion.com/2006/04/17/multithread-php/. Пока не пробовал, но реализация интересная, и по видимому "самая правильная".

У меня сейчас есть только один мощный скрипт, который фигачит в многопоточном режиме - всё работает следующим образом: раз в минуту curl'ом запускается скрипт лаунчера, который иницилизирует и запускает нужное кол-во потоков с помощью curl'а. Потоки отрабатывают (ограничение по времени работы - минута) и сами отмирают. Схема пусть чуть корявая, но придуманная опытным путём, и у неё есть одно неоспоримое преимущество: если сервер упадёт, то сразу как он заработает, система сама запустится и будет фигачить дальше как не бывало. Пока переделывать всё это нет никакого желания =)

четверг, сентября 21, 2006

Калькулятор регулярных выражений

Полезная ссылка - калькулятор, позволяющий сконструировать и посмотреть результат регулярных выражений на лету. Удобно, сложные регулярки сложно тестировать, закрадётся маленькая ошибка, забытый слэш или пропущенный пробел, и всё ничего не работает. А тут можно проверить.

Смотрим тут: http://www.abego-software.de/download/RegExpCalculator.html