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

Discussion in 'PHP' started by draliokero, 9 Feb 2010.

  1. draliokero

    draliokero Member

    Joined:
    14 Mar 2009
    Messages:
    83
    Likes Received:
    6
    Reputations:
    0
    Может ктонибуть, кто сильно дружит курлом и регексами накатать скрипт, который будет палить нескольких пользователей ВК на количество проведенного времени в сети, данные для каждого пользователя хранить в txt в формате id:time Хочу на cron повесить и в течение недели следить за несколькими людьми. Буду очень благодарен, кому не составит труда помочь!
     
    #1 draliokero, 9 Feb 2010
    Last edited: 9 Feb 2010
  2. Deathdreams

    Deathdreams Elder - Старейшина

    Joined:
    8 Nov 2008
    Messages:
    342
    Likes Received:
    116
    Reputations:
    5
    Сейчас попробую написать.
    Если меня не опередят, то выложу.
     
  3. Solker

    Solker Elder - Старейшина

    Joined:
    4 May 2006
    Messages:
    175
    Likes Received:
    53
    Reputations:
    18
    Давненько писал под свои нужны, хранит данные в БД.
    Полнейший примитив.

    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, то понятное дело, он все равно будет считать, что пользователь в сети.
     
    #3 Solker, 12 Feb 2010
    Last edited: 12 Feb 2010
  4. Compton

    Compton Member

    Joined:
    31 Jan 2010
    Messages:
    290
    Likes Received:
    25
    Reputations:
    0
    был быдло-сервис,но его похоже прикрыли
    www.Socialwatch.ru
     
  5. draliokero

    draliokero Member

    Joined:
    14 Mar 2009
    Messages:
    83
    Likes Received:
    6
    Reputations:
    0
    Solker, подскажи еще, как получить массив со всеми ID друзей? Чтобы все вручную не вбивать...
    Насколько помню в SQL картинки хранить можно, как в такое поле аватар загрузить?

    Compton, помню, этот сервис еще за однаглазниками палил :)
     
    #5 draliokero, 13 Feb 2010
    Last edited: 13 Feb 2010
  6. felix_

    felix_ New Member

    Joined:
    25 Sep 2008
    Messages:
    24
    Likes Received:
    3
    Reputations:
    0
    Получить список всех друзей

    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, так что достаточно найти строку
    Code:
    <b>Online</b>
    
    if(strpos($res_curl,'<b>Online</b>'))
    
     
    #6 felix_, 14 Feb 2010
    Last edited: 14 Feb 2010
    1 person likes this.