PDA

Просмотр полной версии : Удобный просмотр подарков юзера [PHP]


Dark_Scorpicore
19.01.2010, 08:32
Вообщем, захотелось на память оставить себе все подарки Пашки Дурова, наваял за 1.5 часа скрипт на php.

Писал чисто для себя и на скорую руку, на звание супер-крутого кодера не претендую. Выложил просто так, вдруг кому пригодится.


Доп. инфа с самом скрипте
<?php
/*

Скрипт предназначен для удобного просмотра множества подарков определенного аккаунта в соц.сети vkontakte.ru
Краткий принцип работы:
1) Программа получает мыло & пароль аккаунта, айди "жертвы";
2) Коннектится к серверу vkontakte.ru, получает необходимые данные;
3) Заносит их в html-файл под названием gift.html с применением CSS контакта :)


Контакты автора:

--vkontakte.ru: id26405643
--ICQ: 585-9o5-oo5
(c) Dark_Scorpicore
*/
set_time_limit(15);//ограничение на время выполнения, чтобы на Пашке не тестили)) А то зависнет браузер)

$mail="";//мыло
$pass="";//пасс
$id="";//ид того, у кого воруем подаркэ :D

function go($link, $cookie_isset, $cookie){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$link);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);

curl_setopt($ch, CURLOPT_TIMEOUT, 10);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)");
if($cookie_isset!=0)
{
curl_setopt($ch, CURLOPT_COOKIE, $cookie);
}
$otvet = curl_exec($ch);
curl_close($ch);
return $otvet;
}

function vk_autorize($mail, $pass)//функция авторизации вк
{
$res = go("http://login.vk.com/?act=login&email=".$mail."&pass=".$pass."&vk=", 0, 0);
$s = grab($res, "id='s' value='", "'");
$remixsid = grab($res, 'remixsid=', ';');
$cookie = 'remixsid='.$s.';';
return $cookie;
}


function grab($inf,$begin,$end)//функция грабинга
{
$begin=strpos($inf,$begin)+strlen($begin);
$end=strpos($inf,$end,$begin);
$grab=substr($inf,$begin, $end-$begin);
if($grab)
{
return $grab;
}
else return 0;
}

$cookie=vk_autorize($mail, $pass); //получаем куки

$page=go("http://vkontakte.ru/gifts.php?id=".$id, 1, $cookie);//коннектимся к подаркам

$all_gifts=grab($page,"<div class=\"summary\"><b>","</b>"); //получаем число подарков
$str_gifts=ceil($all_gifts/15);//получаем кол-во страниц с подарками
print "ID жертвы: $id<br>Суммарно подарков: $all_gifts.<br>Страниц с подарками: $str_gifts<br>"; //некоторые выводы
$file=fopen("gift.html", "w+");//открываем файл

for($i=1, $offset=0; $i<=$str_gifts, $offset<$all_gifts; $i++, $offset+=15)//цикл граббинга и постинга
{
$page=go("http://vkontakte.ru/gifts.php?offset=".$offset."&id=".$id, 1, $cookie);
$page=grab($page, "<div id=\"memberGiftsList\">","</div></td>");
$page=str_replace(array('</div></td></tr></table>','<table cellspacing="0" border="0" class="giftRow ">'),
array('</div></td></tr></table></center><br /><br />', '<table cellspacing="0" border="0" class="giftRow "><center>'),
$page);

$zap="
<html>
<head>
<meta http-equiv=\"content-type\" content=\"text/html; charset=windows-1251\" />
<title>В Контакте | Подарки id $id</title>
<link rel=\"stylesheet\" href=\"/css/rustyle.css\" type=\"text/css\" />
<link type=\"text/css\" href=\"/css/gifts.css\" rel=\"stylesheet\"/>
<link type=\"text/css\" href=\"/css/pages.css\" rel=\"stylesheet\"/>
</head>
<body><table cellspacing=\"0\" border=\"0\" class=\"giftRow \">
<tbody><tr><td class=\"mainPanel\"><div id=\"memberGiftsList\">
<center>$page</center></div>
</center></td></tr></tbody></table></body></html>
";
$zaps=str_replace(array('href="/css/','<a href="', '<div id="', '<div class="giftLoader"><img src="', '<div id="http://vkontakte.rumemberGiftsList">') ,
array('href="http://vkontakte.ru/css/','<a href="http://vkontakte.ru', '<div id="http://vkontakte.ru', '<div class="giftLoader"><img src="http://vkontakte.ru','<div id="memberGiftsList">'), $zap);
fwrite($file, $zaps);
}
fclose($file); //закрытие файла
?>
скрипт можно также глянуть тут ( http://pastebin.mozilla-russia.org/103970)

Спасибо за внимание)
От плюсов не откажусь, если такие в запасе есть :D