Как спарсить из поиска ВКонтакте больше 40 id?

Discussion in 'PHP' started by Gvidion, 6 Apr 2012.

  1. Gvidion

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

    Joined:
    11 Sep 2009
    Messages:
    79
    Likes Received:
    43
    Reputations:
    28
    Суть парсера - парсить ид перейдя по ссылке поиска, где выставлены критерии. Так вот он переходит, парсит 40 штук и всё. Надо как-то "нажать" кнопку "показать ещё" и продолжить. Как это сделать? Сейчас строки отвечающие за парсинг выглядят так:
    PHP:
    $text=$vk->get_htm("http://vk.com/search?c%5Bage_from%5D=16&c%5Bage_to%5D=22&c%5Bcity%5D=280&c%5Bcountry%5D=2&c%5Bname%5D=1&c%5Bonline%5D=1&c%5Bsection%5D=people&c%5Bsex%5D=1&c%5Bsort%5D=1&c%5Bstatus%5D=6");
    preg_match_all("#<a href=\"\/(.*)\" onclick=\"return nav#",$text,$match);
     
  2. mironich

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

    Joined:
    27 Feb 2011
    Messages:
    733
    Likes Received:
    73
    Reputations:
    19
    Послать запрос аналогичный тому что шлет аякс ВК при скроле вниз.
     
  3. Gvidion

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

    Joined:
    11 Sep 2009
    Messages:
    79
    Likes Received:
    43
    Reputations:
    28
    И как это сделать? В аякс запросы я не лез ещё. И как узнать какой он шлёт, а потом послать аналогичный?
     
  4. mironich

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

    Joined:
    27 Feb 2011
    Messages:
    733
    Likes Received:
    73
    Reputations:
    19
    Посмотреть сниффером аякс запросы от обычных нечем не отличаются, FierFox->TemplerData, HttpAnalizer etc,,,
     
  5. Mr.Snuffer

    Mr.Snuffer Member

    Joined:
    2 Jul 2010
    Messages:
    140
    Likes Received:
    13
    Reputations:
    0
    Снифером обычным слови
    Или ctrl+shift+j в хроме, вкладка Network

    ---

    Опередили
     
  6. Gvidion

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

    Joined:
    11 Sep 2009
    Messages:
    79
    Likes Received:
    43
    Reputations:
    28
    пробую HTTP Analyzer, не пойму как там распознать аякс запросы.
     
  7. mironich

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

    Joined:
    27 Feb 2011
    Messages:
    733
    Likes Received:
    73
    Reputations:
    19
    Они от того что аяксом шлются не меняются, тебе необходимо имитировать тот запрос в ответ на который приходит следующий блок стр.
     
  8. Gvidion

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

    Joined:
    11 Sep 2009
    Messages:
    79
    Likes Received:
    43
    Reputations:
    28
    В том то и дело что не вижу никаких запросов, которые этот блок увеличивают...
     
  9. mironich

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

    Joined:
    27 Feb 2011
    Messages:
    733
    Likes Received:
    73
    Reputations:
    19
    Code:
    Request URL:http://vk.com/al_search.php
    Request Method:POST
    Status Code:200 OK
    Request Headersview source
    Accept:*/*
    Accept-Charset:ISO-8859-1,utf-8;q=0.7,*;q=0.3
    Accept-Encoding:gzip,deflate,sdch
    Accept-Language:ru
    Connection:keep-alive
    Content-Length:101
    Content-Type:application/x-www-form-urlencoded
    Host:vk.com
    Origin:http://vk.com
    Referer:
    User-Agent:Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.79 Safari/535.11
    X-Requested-With:XMLHttpRequest
    Form Dataview URL encoded
    al:1
    c[q]:паприка
    c[section]:video
    c[sort]:2
    offset:80
     
  10. Gvidion

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

    Joined:
    11 Sep 2009
    Messages:
    79
    Likes Received:
    43
    Reputations:
    28
    Эм...И как это теперь послать из скрипта то?
     
  11. justonline

    justonline network ninja

    Joined:
    27 Jul 2011
    Messages:
    499
    Likes Received:
    60
    Reputations:
    53
    чувак, там параметр офсета есть
     
    1 person likes this.
  12. mironich

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

    Joined:
    27 Feb 2011
    Messages:
    733
    Likes Received:
    73
    Reputations:
    19
    Это пост дата если че...
    Code:
    al:1
    c[q]:паприка
    c[section]:video
    c[sort]:2
    offset:80
     
  13. Chaak

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

    Joined:
    1 Jun 2008
    Messages:
    1,059
    Likes Received:
    1,067
    Reputations:
    80
    Аналогично
     
  14. Gvidion

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

    Joined:
    11 Sep 2009
    Messages:
    79
    Likes Received:
    43
    Reputations:
    28
    Ну вот скрипт целеком, и куда тут запилить этот пост запрос то?
    PHP:
    <?php
    class vk_parser{

    function 
    vk_init(){
            global 
    $ch;
            
    $ch=curl_init();}

    function 
    curl_parametrs(){
            global 
    $ch;
            
    curl_setopt($chCURLOPT_HEADER,0);
            
    curl_setopt($chCURLOPT_TIMEOUT20);
          
    //  curl_setopt($ch, CURLOPT_COOKIEFILE, "cook.txt");
            
    curl_setopt($chCURLOPT_COOKIEJAR"cook.txt");
            
    curl_setopt($chCURLOPT_FOLLOWLOCATION1);
            
    curl_setopt($chCURLOPT_RETURNTRANSFER1);
            
    curl_setopt($chCURLOPT_ENCODING'gzip,deflate');
            
    curl_setopt($chCURLOPT_USERAGENT'Mozilla/5.0 (compatible; YandexBot/3.0; +http://yandex.com/bots)');
    }

    function 
    get_htm($url){
             global 
    $ch;
             
    curl_setopt($chCURLOPT_URL,$url);
             
    $data=curl_exec($ch);
                  return 
    $data;                 }



    function 
    close(){
             global 
    $ch;
        
    curl_close($ch);}
    }


    ?>
    PHP:
    <?php
    include('vk.clas.php');
    $login="";//Логин
    $pass="";// Пароль
    $id='love_osechka';
    $vk=new vk_parser;
    $vk->vk_init();
    $vk->curl_parametrs();
    $text=$vk->get_htm("http://vk.com/search?c%5Bage_from%5D=16&c%5Bage_to%5D=22&c%5Bcity%5D=280&c%5Bcountry%5D=2&c%5Bname%5D=1&c%5Bonline%5D=1&c%5Bsection%5D=people&c%5Bsex%5D=1&c%5Bsort%5D=1&c%5Bstatus%5D=6");
    preg_match_all("#<a href=\"\/(.*)\" onclick=\"return nav#",$text,$match);
    for (
    $i 1$i <= 80$i++) {
    echo 
    $match[1][$i]."<br>";
    $i++;
    }
    $vk->close();
    unset(
    $vk);
    ?>
     
  15. justonline

    justonline network ninja

    Joined:
    27 Jul 2011
    Messages:
    499
    Likes Received:
    60
    Reputations:
    53
    ну спарсил ты первый офсет, след запрос делаешь через курл, парсишь..и так до бесконечности

    За сегодня вторая тема с вопросом по контакту и пхп.
    делфя не? разобраться как произвести запрос и отпарсить - 5 минут

    &c%5Bstatus%5D=6&offset=100500
    тип того
     
  16. Gvidion

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

    Joined:
    11 Sep 2009
    Messages:
    79
    Likes Received:
    43
    Reputations:
    28
    Это первое что я попробовал до создания темы, вообще не парсит тогда, ибо на эту ссылку не переходит.
     
  17. justonline

    justonline network ninja

    Joined:
    27 Jul 2011
    Messages:
    499
    Likes Received:
    60
    Reputations:
    53
    а тфу...ну конечно. ты перейди по линку и глянь код страницы. там просто начинка не сформированная jsами. тупо код
     
  18. mironich

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

    Joined:
    27 Feb 2011
    Messages:
    733
    Likes Received:
    73
    Reputations:
    19
    global $ch;
    Меня эта строка и настораживает и печалит, неужели в php зря придумали поля класса?)
     
  19. justonline

    justonline network ninja

    Joined:
    27 Jul 2011
    Messages:
    499
    Likes Received:
    60
    Reputations:
    53
    vk.com/al_search.php?al=1&c[name]=1&c[section]=people&offset=60

    и посмотри исходный код
     
  20. Gvidion

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

    Joined:
    11 Sep 2009
    Messages:
    79
    Likes Received:
    43
    Reputations:
    28
    Не помогло...