banner

Автоматический addurl в yandex

Обновлено 15.11.2009
Написал скрипт автоматического addurl в yandex.
good.txt - файл с удачным addurl
bad.txt - файл с не удачным addurl
urls.txt - файл с урл
proxy.txt - файл с прокси,если потребуется работа через прокси
Удобно ставить на крон,можно указать задержку между добавлением ссылок.
Скачать

< ?php
 
/**
 * @author RushteR
 * @copyright 2009
 */
set_time_limit(0);
include ("func.php");
$good = fopen("good.txt", "at"); // good file
$bad = fopen("bad.txt", "at"); // bad file
//$proxy = file("proxy.txt"); // uncomment if you need a proxy
$urls = file("urls.txt");    // url file
$ackey = ""; // ac-service.info key
$patch = 'C://wamp/www/yaddr\\'; // 	full path to the folder (if windows)
$sleep = 0; 			// 	delay time
function savecap($url, $name = "savecap", $type = "jpg", $cook = "")
{
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    if (isset($proxy))
        curl_setopt($ch, CURLOPT_PROXY, $proxy[rand(0, count($proxy) - 1)]);
    curl_setopt($ch, CURLOPT_TIMEOUT, 10);
    curl_setopt($ch, CURLOPT_COOKIE, $cook);
    curl_setopt($ch, CURLOPT_USERAGENT,
        'Mozilla/4.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.7)');
    $result = curl_exec($ch);
    $fp = fopen($name . "." . $type, 'w');
    fwrite($fp, $result);
    fclose($fp);
}
$ch = curl_init();
foreach ($urls as $url) {
    curl_setopt($ch, CURLOPT_URL, 'http://webmaster.yandex.ru/addurl.xml');
    curl_setopt($ch, CURLOPT_POST, false);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    if (isset($proxy))
        curl_setopt($ch, CURLOPT_PROXY, $proxy[rand(0, count($proxy) - 1)]);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
    curl_setopt($ch, CURLOPT_AUTOREFERER, true);
    curl_setopt($ch, CURLOPT_TIMEOUT, 10);
    curl_setopt($ch, CURLOPT_HEADER, true);
    curl_setopt($ch, CURLOPT_USERAGENT,
        'Mozilla/4.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.7)');
    $resp = curl_exec($ch);
    preg_match('#name="key" type="hidden" value="(.*?)">#', $resp, $out);
    preg_match_all('#^Set-Cookie: ([^;]*)#mi', $resp, $cookies);
    $cook = implode('; ', $cookies[1]);
    savecap("http://captcha.yandex.net/image?key=$out[1]", "savecap", "jpg", $cook);
  $code = recognize($patch . "savecap.jpg", $ackey, 0);
    curl_setopt($ch, CURLOPT_URL, "http://webmaster.yandex.ru/addurl.xml");
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    if (isset($proxy))
        curl_setopt($ch, CURLOPT_PROXY, $proxy[rand(0, count($proxy) - 1)]);
    curl_setopt($ch, CURLOPT_TIMEOUT, 10);
    curl_setopt($ch, CURLOPT_HEADER, true);
    curl_setopt($ch, CURLOPT_COOKIE, $cook);
    curl_setopt($ch, CURLOPT_USERAGENT,
        'Mozilla/4.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.7)');
    curl_setopt($ch, CURLOPT_POSTFIELDS, "url=$url&key=$out[1]&rep=$code&do=add");
   $responce = curl_exec($ch);
    if (strstr($responce, "302")) {
        echo $url . "   OK<br />";
        fwrite($good, "$url - Ok\n");
        flush();
        ob_flush();
    } else {
        echo $url . "   BAD<br />";
        fwrite($bad, "$url - BAD\n");
        flush();
        ob_flush();
    }
    unset($urls[0]);
    file_put_contents("urls.txt", $urls);
    sleep($sleep);
}
 
?>

Читать далее...

Парсим логи apache на предмет поисковых запросов.

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

< ?php
# coding:utf-8
# author: Rushter
# site: http://klipner.ru
$ulog = fopen("log.txt", "at");
$domains = 'domains.txt';
$ld = ('../../../logs/');
if (file_exists($domains)) {
    $tr = 1;
    $domains = file('domains.txt');
} else {
    $domains = glob($ld . "*.access.log");
}
foreach ($domains as $dom) {
    if (@$tr == 1) {
        $logs = file_get_contents($ld . trim($dom) . ".access.log");
    } else {
        $logs = file_get_contents($dom);
    }
    echo "<font color=\"Red\"><b>$dom</b><br />";
    echo "<ul>";
    preg_match_all('#(text=(.*)&[a-z]{1,8}|search?q=(.*)&[a-z]{1,8})#iU', $logs, $arr);
    foreach ($arr[2] as $arrs) {
        fwrite($ulog, urldecode($arrs) . "\n");
        echo "<li type='1'>" . urldecode($arrs) . "</li>";
 
    }
     echo "</ul>";
}
fclose($ulog);
?>

Парсер кейвордов с sitemap

Парсер кейвордов с sitemap доров. Посовещается тем кто не может сам напарсить,а на покупку денег нет.Указывайте url к sitemap и нажимайте кнопку начать...

< ?php
# coding: utf-8
# author: Rushter
# site: http://klipner.ru
if (!isset($_GET['surl']))
    echo <<< HERE
<form>
Введите url:<br />
<input type="text" name="surl"/><br />
<input type="submit" value"начать"
</form/>
HERE;
else {
    $log = fopen("keywords.txt", "at");
    $smap = file_get_contents($_GET['surl']);
    preg_match_all('#<a href="[^а-я].*">(.*)</a>#iU', $smap, $arrmap);
    foreach ($arrmap[1] as $arr) {
        fwrite($log, preg_replace("#(< .*>(.*)|< .*>(.*)[а-я].*)#iU", "", $arr) . "\n");
    }
}
 
?>

Seopult.tv


Начал свою работу очень интересный сервис бесплатного вещания интернет-телевидения для вебмастеров. Вещание идет с понедельника по пятницу, с 11:00 до 19:00 по московскому времени. Все записи хранятся в архиве. Советую посмотреть.
http://seopult.tv/

Парсер логов apache

Иногда полезно посмотреть сколько раз заходил и какие страницы загружал поисковый бот. Например так я мониторю индексацию своих доров. Список доменов можно указать в файле domains.txt, либо скрипт сам найдёт все логи в папке. Для firstvds работать будет сразу, для других vds возможно придётся указать другую папку с логами.
$domains - фаил с доменами.
$ua - фаил с user агентами которые нужно парсить.

< ?php
# coding: utf-8
# author: Rushter
# site: http://klipner.ru
$domains = 'domains.txt';
$ua = file('ua.txt');
$ld = ('../../../logs/');
if (file_exists($domains)) {
    $tr = 1;
    $domains = file('domains.txt');
} else {
    $domains = glob($ld . "*.access.log");
}
 
foreach ($domains as $dom) {
    if (@$tr == 1) {
        $logs = file($ld . trim($dom) . ".access.log");
    } else {
        $logs = file($dom);
    }
    echo "<font color=\"Red\"><b>$dom</b><br />";
    echo "<ul>";
    foreach ($logs as $lg) {
        foreach ($ua as $uas) {
 
            if (preg_match("#.*".trim($uas).".*#", $lg)) {
                echo "<li type='1'>" . $lg . "</li>";
            }
        }
 
    }
    echo "</ul>";
}
 
?>

Скачать

Yandex прямой эфир

Понадобился парсер прямого эфира яндекса. Написал на python, его я начал изучать недавно,поэтому код далеко не идеальный. Результат сохраняется в файл efir.txt , может кому-то пригодится...

# coding: utf-8
# author: Rushter
# site: http://klipner.ru
import httplib,re,time
count = 200 # сколько парсить
print "[*]Parsing has started"
print "[*]Parsing "+str(count)+" acc"
for i in range(count/20):
    f = open('efir.txt','a')
    conn = httplib.HTTPConnection("stat.yandex.ru")
    conn.request("GET", "/queries/last20.xml")
    r = conn.getresponse()
    data = r.read()
    req = re.findall('blank">(.*)',data)
    #f.write(req)
    for i in req:
        f.write(i+'\n')
        print i.decode('utf8')
    f.close()

ps. Python 2.6