PDA

Просмотр полной версии : [php][HELP] VK.com проследить за пользователями сколько они ONLINE


draliokero
09.02.2010, 19:08
Может ктонибуть, кто сильно дружит курлом и регексами накатать скрипт, который будет палить нескольких пользователей ВК на количество проведенного времени в сети, данные для каждого пользователя хранить в txt в формате id:time Хочу на cron повесить и в течение недели следить за несколькими людьми. Буду очень благодарен, кому не составит труда помочь!

Deathdreams
09.02.2010, 19:31
Сейчас попробую написать.
Если меня не опередят, то выложу.

Solker
12.02.2010, 01:52
Давненько писал под свои нужны, хранит данные в БД.
Полнейший примитив.

<?php

$url = 'http://vkontakte.ru/id1';
$cookie = 'cookie';

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_COOKIE, $cookie);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
$res_curl = curl_exec($ch);
curl_close($ch);

if(strpos($res_curl,'Online'))
{
echo 'Online';

$link = mysql_connect('localhost', 'root', 'pass');
mysql_select_db('vk_db',$link);
mysql_query("set names cp1251");

$query = "INSERT INTO vk_online VALUES(0,'".time()."')";
mysql_query($query);

mysql_close($link);
} else
echo 'Offline';

?>

Тебе надо в качестве $url использовать массив и прогонять его в цикле. И если БД, то добавить дополнительное поле с ID страници.

PS. Если пользователь где то на странице напишет Online, то понятное дело, он все равно будет считать, что пользователь в сети.

Compton
12.02.2010, 10:09
был быдло-сервис,но его похоже прикрыли
www.Socialwatch.ru

draliokero
13.02.2010, 01:58
Solker, подскажи еще, как получить массив со всеми ID друзей? Чтобы все вручную не вбивать...
Насколько помню в SQL картинки хранить можно, как в такое поле аватар загрузить?

Compton, помню, этот сервис еще за однаглазниками палил :-)

felix_
14.02.2010, 11:47
Получить список всех друзей

$ch=curl_init();

curl_setopt($ch, CURLOPT_URL, 'http://pda.vkontakte.ru/write');
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_REFERER, 'http://vkontakte.ru/mail.php');
curl_setopt($ch, CURLOPT_COOKIE, $cookie);


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

preg_match_all('#<option value="([0-9]+)" >#UiS',$answer,$base);

массив $base будет содержать id всех друзей, а на счёт аватарки можно в SQL просо занести ссылку на неё...


$ch=curl_init();

curl_setopt($ch, CURLOPT_URL, 'http://vkontakte.ru/profile.php');
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_COOKIE, $cookie);

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

$photo = (preg_match("#<img src=(.*?) #", $answer, $photo)) ? $photo[1] : "fuck" ;

Solker, если ищешь online - то там на странице могут ещё показывать других пользователей которые online, так что достаточно найти строку <b>Online</b>

if(strpos($res_curl,'<b>Online</b>'))