Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   [php][HELP] VK.com проследить за пользователями сколько они ONLINE (https://forum.antichat.xyz/showthread.php?t=177536)

draliokero 09.02.2010 19:08

[php][HELP] VK.com проследить за пользователями сколько они ONLINE
 
Может ктонибуть, кто сильно дружит курлом и регексами накатать скрипт, который будет палить нескольких пользователей ВК на количество проведенного времени в сети, данные для каждого пользователя хранить в txt в формате id:time Хочу на cron повесить и в течение недели следить за несколькими людьми. Буду очень благодарен, кому не составит труда помочь!

Deathdreams 09.02.2010 19:31

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

Solker 12.02.2010 01:52

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

PHP код:

<?php

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

    
$ch curl_init();  
        
curl_setopt($chCURLOPT_URL$url); 
        
curl_setopt($chCURLOPT_HEADER1);
        
curl_setopt($chCURLOPT_COOKIE$cookie);
        
curl_setopt($chCURLOPT_FOLLOWLOCATION1);
        
curl_setopt($chCURLOPT_RETURNTRANSFER1);
        
curl_setopt($chCURLOPT_TIMEOUT10);
        
curl_setopt($chCURLOPT_CONNECTTIMEOUT10); 
        
$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

Получить список всех друзей

PHP код:

        $ch=curl_init(); 

        
curl_setopt($chCURLOPT_URL'http://pda.vkontakte.ru/write');   
        
curl_setopt($chCURLOPT_HEADER1); 
        
curl_setopt($chCURLOPT_TIMEOUT10);         
        
curl_setopt($chCURLOPT_RETURNTRANSFERtrue);
        
curl_setopt($chCURLOPT_REFERER'http://vkontakte.ru/mail.php');
        
curl_setopt($chCURLOPT_COOKIE$cookie);


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

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

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


PHP код:

            $ch=curl_init(); 
 
              
curl_setopt($chCURLOPT_URL'http://vkontakte.ru/profile.php');   
              
curl_setopt($chCURLOPT_HEADER1); 
             
curl_setopt($chCURLOPT_TIMEOUT10);
             
curl_setopt($chCURLOPT_RETURNTRANSFERtrue); 
             
curl_setopt($chCURLOPT_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>'))



Время: 17:22