6.07.2008

YACG and Google Trends parser

Тэээкс... Вообщем сайт про который писал на основе YACG в гугле вылетел нах. Где то месяц трепыхался по 30-70 страниц в индексе а несколько дней назад просто был на него наслан похуй гугло. Трафффа не было и нет. Зато яху жрет его как надо, уже 1700 паг с чем то в индексе и вроде понемногу растет. Но траффа так и нет)). По поводу гугли я думаю надо с контентом все же хоть как то заморачиватся, простейшую синонимизацию производить и наверное не так часто пинговать все же, я пинговал каждый час, т.е. забрал трендсы и тут же повесил обновление на морду и послал на пинг. Лана, пох пусть живет, мож когда где выстрелит)).

Теперича далее. Хочу положить тут скрипт, а именно hook для YACG парсящий гуглотрендсы и пингующий. Вота: YACG Google Trends hook. Там есть ридми и написано че делать что бы заработало. Вкратце хоок можно ставить на крон и выводить результаты прсинга гугл трендс в нужном вам формате и нужном вам месте, так же хоок можно дергать откуда нить еще, можно просто применить как парсер для гуглотрендсов итд.

Редко пишу щас, дела + лето = жуть и лень. Попробовал кстати dogmasoftware на днях - на моем смешанном адалте выходит раза в полтора больше чем на кодеках. Рекомендую.

Усе, устал писать.

Technorati Теги: ,,,,

Ярлыки: , , , ,

1.28.2008

Массовое редактирование файлов через FTP

Давно собирался выложит скрипт, но все руки не доходили ридми написать. А всвязи с тем что на кликфоруме подняли тему данную, то разразился таки описанием.
Вкратце про скрипт.
У Вас есть много файлов и доступ к ним по фтп, есть желание менять на них какой-либо контент когда захочется (ну приветствие там, ссылки, еще что в голову взбредет). Руками все это делать конечно нудно! Так вот скрипту скармливаете все данные фтп, директории, файлы, задаете шаблон который надо заменить, задаете на что надо заменить, запускаете скрипт, делаете свои дела - все. В идеале все должно работать так)) у меня так и работало))
Но плиз при первом использовании осторожно, запросто можно похерить что не надо. Т.е. проверьте на чем-нить левом.
Вот скрипт: change_ftp_files.zip
Внутри есть ридми. Приятного пользования.
С багами и предложениями всех масштабов в комменты.

Ярлыки: , , ,

12.12.2007

SimpleTDS (my version)

Сам юзаю сей продукт, но так как апдейтов давно не видно, то приходится иногда подшаманивать самому. Выкладываю немного подредактированную и дополненную мною версию. В частности вроде как исправил багу с обнулением статсов (смотри эти темы на форуме продукта: Обнуление статистики, Всем кого беспокоит обнуление статсов!). Так же добавил читалку статсов.

Вообщем то ставится все так же как и стандартная версия, за исключениями:
- по поводу баги с обнулением статсов - " Добавлена дира lock\data\stats - всему этому нужно выставить права 777. Там создается запирающий файл.
Вообщем то все сделано на основе вот этого алгоритма http://www.web-faq.ru/articles/showarticles_282.html.external link
Тема такая, у меня ТДС падала стабильно при наличии траффа от 6-7к в сутки. После исправлений вроде не падала больше. Для тестов пробовал еще натравливать на нее спамелку в 50-70 потоков (примерно равно 100 посетителей в минуту) - статсы тоже не обнулялись."
- по поводу читалки статсов - сама читалка это файл statsreader.php, и во всех файлах занимающихся интерфейсом добавлена ссылка на этот файл - вверху STATS READER.
Вот она:
ВНИМАНИЕ: не советую ждать пока прогрузятся все статсы, т.к. ограничение на показ 100 результатов тут отсутствует. Т.е. если статсов очень много то они очень долго будудт грузится - лучше нажать стоп)).
Вид этого хозяйства:

По поводу работы с читалкой:
Filter: IP COUNTRY REFERRER - при клике по каждому покажет соответственно уникальных посетителей по ипуб странеб реффереру.
Select: позволяет делать выборки из статсов (возможно так же из уже отфильтрованных по уникальности статсов). Тут думаю все ястно отмечаем по какому полю выбирать(by referrer, bycountry, by user agent), вбиваем что должно содержаться в поле (устроит вхождение строки), Not - не должно содержаться, жмем select.
Встроке TDS Traffic Stats For... отображаются данные в циферках: всего записей, тип фильтрации, уникальных по фильтру, тип выборки, уникальных после всех операций.

Пример работы.
Задача: узнать количество уникальных посетителей из самой нужной страны - United States of America.
Решение: идем в stats reader, не дожидаясь пока прогрузятся все статсы останавливаем загрузку страницы, жмем фильтр по ip, опять же можно оне ждать полной прогрузки статсов, отмечаем select by country, в текстовое поле вбиваем United States, жмем select, смотрим.

Скрипт: simpleTDS_1.1beta_sam%28statsreader%29.zip
P.S.: все же не стоит сразу убивать свою текущюю версию ТДС, поставьте сначала потестите эту, мож баги найдутся. Просьба отписывать в комменты.

Ярлыки: , ,

10.02.2007

Скрипт парсинга овертюры в глубину и определения конкуренции в Google для каждого кея

Вот тут выкладывал скрипт для парсинга овертюры и гугла вместе.
Вот он собсно, с комментариями:



set_time_limit(0);
$pattern = "|#results\">(.*?).*?(\d{1,3},*\d{0,3},*)|i";


/**
Проверяет вхождение выражения подходящего под паттерн в текс и возвращает
массив ассоциативный таких вхождений, содержащий кей - количество запросов в месяц по овертюре
$source - текст старницы
$pattern - регулярное выражение определяющее фразы
/*
function Parse($source, $pattern) {
if(preg_match_all($pattern, $source, $matches))
{
$i = 0;
foreach ($matches[1] as $link)
{
$res[$link] = $matches[2][$i];
++$i;
}
return $res;
} else {
echo "
". "No pattern matches were found!\r\n" . "
";
}
}

/**
Получает количество страниц в гугле для массива кеев $keys
Возвращает ассоциативный массив кей - количество страниц
*/
function GETGOOGLECOUNT($keys){
for ($i=0; $i
([0-9,]*)", $file, $regs);
$count=str_replace(",", "", $regs[1]);
$res[$i] = $count;
}
return $res;
}

/**
Получает кей ($keyword), делает запрос к заданному сервису, получает до 100 слов(сервис до стольки выдает) с их конкуренцией (сервис иногда выдает ошибку, поэтому сделал пока просто 10 попыток парсинга, вроде хватает), потом по каждому слову узнает количество документов в гугле и все это возвращает массивом [кей] - [количество запросов;конкуренция в гугле] и ждет 20 секунд, чтоб бана гугли не получить.
*/
function PARSEONEWORD($keyword){
global $pattern;
$mkt = "US";
$service = "http://tools.seobook.com/general/keyword/?c=1&keyword=" . $keyword . "&mkt=" . $mkt . "#result";
echo "Reply from server " . $service . " for keyword " . $keyword . "

";
$source = @file_get_contents($service);
$keys_arr = Parse($source, $pattern);
if (sizeof($keys_arr) > 0) {
foreach($keys_arr as $kw=>$kwcount) {
$keys[]=$kw;
}
$g_count=GETGOOGLECOUNT($keys);
sleep(20);
$i = 0;
foreach ($keys_arr as $kw=>$kwcount) {
$result[$kw] = $kwcount.";".$g_count[$i];
$i++;
}
}else{
$result = false;
}
return $result;
}

//Записывает результаты в файл
function WRITERESULTS($fname, $keys) {
$i=0;
$h = fopen($fname, "ab");
foreach($keys as $kw=>$pair){
fwrite($h, $kw.";".$pair."\n");
}
fclose($h);
}

/**
Парсит список кеев из файла $fname, результаты пишет в файл result.txt
*/
function PARSEMANYKEYS($fname) {
$keys = file($fname);
$h = fopen("./result.txt", "w");
fwrite($h, "Keyword;Popularity;Google_Count\r\n");
fclose($h);
foreach ($keys as $k){
for ($i=0;$i<10;$i++){ keys1 ="">
{
print_r($keys1);
WRITERESULTS("./result.txt", $keys1);
break;
} else {
echo "\r\nNo results for " .$k.". Now attempt number " .$i ."\r\n";
}
}
}
}

PARSEMANYKEYS("keys.txt");
?>


Еще иногда перделываю из его себе подо что нужно, что бы разные распарсенныей кеи сохранял в разные файлы, можно убирать парсинг гугли ил уменьшать\увеличивать задержку (sleep(20)). Про задержку может кто в курсе сколько ее ставиь лучше?

Ярлыки: , , , , ,