PHP скрипты
Как вы наверное знаете, я немного PHP программист. Я не считаю себя профессионалом, который решит задачу любой сложности. Я не использую ООП, и мой код частенько похож невнятную мешанину(отчасти из-за незнания, отчасти из-за лени и постоянных исправлений). Кто смотрел мои скрипты, думаю, знает это) Но это не мешает мне решать задачи, которые я перед собой ставлю — начиная от банального парсинга кеев и заканчивая хитрой авторизацией в яндексе, а так же взаимодействия с различными API (TopSape тому пример). Но если есть готовый скрипт — зачем изобретать велосипед? К сожалению, скрипты (как самописные, так и найденные в инетрнете) имеют свойство теряться. Поэтому я решил складировать их здесь, как для собственных нужд (проще зайти на свой блог и скопировать функцию, чем шариться по компу в поисках файлика), так и для общего пользования (вдруг кто-то захочет свой сервис открыть, или полезный скрипт написать). Преимущественно здесь будут скрипты, связанные с парсингом, автоматизацией, упрощению рутины и т.д. Использвать можете как угодно, только не продавайте (опен сорц рулит!). Итак, начнем:
FeedBurner Counter
function fb($feed){
$s=file_get_contents("http://feedburner.google.com/api/awareness/1.0/GetFeedData?uri={$feed}");
preg_match('/circulation="(\d+)"/', $s, $a);
return $a[1];}
Все просто — выводит число подписчиков фида. Можно указывать как полный адрес, так и частичный (Spryt к примеру). Если показывается на картинке — будет показываться и здесь (в админке фидбурнера можно закрыть доступ). Во время обновления выдает 0, что не очень удобно..
Alexa Rank
function alexa($url) {
preg_match('#<div class="data .+?">(.*?)</div>#si', file_get_contents("http://www.alexa.com/siteinfo/{$url}"), $a);
return trim(str_replace(",","",strip_tags($a[1])));}
Вводим адрес сайта (без http://) — получаем его Alexa Rank. Алекса может обидится (раньше всячески препятствовал парсинга), так что аккуратнее.
Яндекс: тИЦ
function cy($url){
preg_match("/value=\"(.\d*)\"/", join("", file('http://bar-navig.yandex.ru/u?ver=2&show=32&url=http://'.$url.'/')), $tic);
return($tic[1]!=""?$tic[1]:0); }
Довольно компактный парсер тИЦа. Может дольше обновляется, чем на кнопке/в каталоге. Писал не я (некоторые моменты я тоже не вкурил — работает, и ладно).
Яндекс: число страниц в индексе
Обратите внимание на ограничения яндекса — он запросто может ограничить IP и выдавать ему капчу (если парсите сразу пачку сайтов). Между запросами лучше установить случайный интервал, вроде sleep(5,rand(1,5));
Веб прокси
echo file_get_contents($_GET['q']);
$content=file_get_contents("http://урл.сайта/имя.скрипта?=".$url); //Использование
Можно конечно использовать прокси — но это гораздо сложнее (надо парсить списки, собирать курл запрос и т.д.). А так просто размещаете на своих хостингах с разными IP файлик proxy.php, и потом скриптом случайно выбираете адрес и парсите с него. Только проверьте предварительно (некоторые хостеры закрывают доступ). Я такой начал использовать для твиттера (у него ограничение 150 запросов в час).
LiveInternet статистика
function listat($url){
$content = file_get_contents("http://counter.yadro.ru/values?site=".$url);
preg_match_all("|LI_([^ ]+) = (\d*);|",$content,$ok);
for($i=0; $i<count($ok[1]); $i++) $info[$ok[1][$i]]=$ok[2][$i];
return $info;}
//Использование
$ff=listat($url);
$w_vis=floor($ff[week_vis]/7);
$w_hit=floor($ff[week_hit]/7);//Средняя посещаемость за последнюю неделю
$li_vis=$ff[day_vis];
$li_hit=$ff[day_hit];//И дневная посещаемость
echo "Week $w_vis / $w_hit, today $li_vis / $li_hit";
Информация для счетчика LiveInternet. Показывается для всех сайтов, которые не закрыли отображение инфы на счетчике (даже если сама статистика закрыта). Удобно как анализировать чужие сайты, так и просматривать суммарную посещаемость своих.
Google Pagerank
Смайлик Лебедева (ссылки из ППБ на блог)
Список последних 10 сайтов, которые ссылались на вас. Используется RSS поиск по Яндекс.Блогам.
Продолжение следует! Если нужны какие-нибудь простенькие скрипты, который буду здесь уместны — обращайтесь.
Полезные ссылки:
SAPE Stat (скрипт для работы с Sape API)
SeoClass.php от Madbirdy (тИЦ, PR, страниц в индексе яндекса и гугла, серп яндекса и гугла)
Twitter скрипты с моего буржуйского блога — Превью пользователя, число фолловеров и френдов, бот для автоматического фолловинга и его применение (лень сюда переписывать).
Спасибо за подборку скриптов. В принципе все очевидно, но думаю, что новичкам, или людям не приближенным к делам веб-кодинга будет полезно.
Интересует скриптик для парсинга, и подобные ему)
Но впринципе, эти, по большей мере стандартные, тоже найдут свое применение.
Спасибки за скрипты. А можешь выложить код показа заработка на адсенс как в сайдбаре?
Скрипт проверки PR
$googlehost=’toolbarqueries.google.com’;
$googleua=’Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.0.6) Gecko/20060728 Firefox/1.5′;
function StrToNum($Str, $Check, $Magic) {
$Int32Unit = 4294967296;
$length = strlen($Str);
for ($i = 0; $i = $Int32Unit) {
$Check = ($Check — $Int32Unit * (int) ($Check / $Int32Unit));
$Check = ($Check >= 2;
$Check1 = (($Check1 >> 4) & 0x3FFFFC0 ) | ($Check1 & 0x3F);
$Check1 = (($Check1 >> 4) & 0x3FFC00 ) | ($Check1 & 0x3FF);
$Check1 = (($Check1 >> 4) & 0x3C000 ) | ($Check1 & 0x3FFF);
$T1 = (((($Check1 & 0x3C0) << 4) | ($Check1 & 0x3C)) <<2 ) | ($Check2 & 0xF0F );
$T2 = (((($Check1 & 0xFFFFC000) << 4) | ($Check1 & 0x3C00)) <= 0; $i —) {
$Re = $HashStr{$i};
if (1 === ($Flag % 2)) {
$Re += $Re;
$Re = (int)($Re / 10) + ($Re % 10);
}
$CheckByte += $Re;
$Flag ++;
}
$CheckByte %= 10;
if (0 !== $CheckByte) {
$CheckByte = 10 — $CheckByte;
if (1 === ($Flag % 2) ) {
if (1 === ($CheckByte % 2)) {
$CheckByte += 9;
}
$CheckByte >>= 1;
}
}
return ‘7’.$CheckByte.$HashStr;
}
function getch($url) { return CheckHash(HashURL($url)); }
function getpr($url) {
global $googlehost,$googleua;
$ch = getch($url);
$fp = fsockopen($googlehost, 80, $errno, $errstr, 30);
if ($fp) {
$out = «GET /search?client=navclient-auto&ch=$ch&features=Rank&q=info:$url HTTP/1.1\r\n»;
$out .= «User-Agent: $googleua\r\n»;
$out .= «Host: $googlehost\r\n»;
$out .= «Connection: Close\r\n\r\n»;
fwrite($fp, $out);
while (!feof($fp)) {
$data = fgets($fp, 128);
$pos = strpos($data, «Rank_»);
if($pos === false){} else{
$pr=substr($data, $pos + 9);
$pr=trim($pr);
$pr=str_replace(«\n»,»,$pr);
return $pr;
}
}
fclose($fp);
}
}
использование:
$pr = getpr($url);
Your English leaves much to be desired. Это судя по блогу тому, хотя молодец, что начал прорываться в буржунет.
Думаю, что мне будет удобнее начинать учить пхп по твоим нано-скриптам )
Особенно весело будет изучать пхп, в дополнение к уже слегка изученному и активно используемому питону.
Спасибо.
Сохранил страничку себе. Правда при парсинге Яндекса возможен бан по ip, лучше пользоваться проксями.
было бы полезно еще видеть скриптец с последними фразами, по которым пришли на сайт 🙂
присоединяюсь к Seoved. Ты парсишь страницу непосредственно с аккаунта или через API?
За прокси спасибо, как-то и не подумал бы…
присоединяюсь к Seoved. Не собираешься парсер Адсенс выложить? и вообще — помню раньше у них нельзя было доходы разглашать, а теперь можно?
всем, кто интересовался парсингом адсенса
http://www.statist-motivator.ru
2Spryt: Можешь ссылку выставить?
Спрут а ты пхп в универе выучил или сам? Если сам посовеуй хороший учебник, то какой учебник не возьми начиается с масивов, грузят терминами в итоге ниче не понимаю. На сайтк интуит нашел лекцию хорошую,вроде начал понимать, но там мало инфы.
Поставил ссылочку на тебя со своего списка полезностей.
Спрут, посоветуй как быстро научиться кодить на php, у тебя я как вижу это неплохо получается.
Джаник === просто и быстро читай php программирования)))
Очень хорошая подборка, спасибо. Как пробую наваять мини-сервис. Подскажи, Spryt, те скрипты здесь: http://anseo.ru/ функция определения страниц в индекса Яндекса используется xml или обычная? У меня обчная чет не пашет ((
http://spryt.com/twitter-php-scripts/ линк не работает, собственно как и сам .com домен
Ошибка в скрипте «Веб прокси»
строка
$content=file_get_contents(«http://урл.сайта/имя.скрипта?=».$url);
должно быть
$content=file_get_contents(«http://урл.сайта/имя.скрипта?q=».$url);
Алгоритм Google Pagerank на anseo.ru поправь, а то пользоваться не очень удобно — сейчас для всех сайтов нули выдает:)
Он уже с месяц как изменился, изменения незначительные, описание в открытых источниках давно уже есть.
не могу с прокси разобраться вот это и будет прокси ?
пишет Warning: file_get_contents() [function.file-get-contents]: Filename cannot be empty in /home/virtwww/w_impulse-np-org_3cad8c78/http/prok.php on line 2
разобрался, только через file_get_contents печенье яндексу не могу отослать,
А через curl такой прокси можно накидать
Привет. Желательно чтоб ты еще выложил бы обработчик этих скриптов. И если не трудно то сбрось мне их на мыло. (которое указано при добавлении поста)
Яша будет банить IP адрес. Так что это не на долго.