За последние 24 часа нас посетили 51936 программистов и 1715 роботов. Сейчас ищет 871 программист ...

Не выводится список изделий при парсинге

Тема в разделе "Прочие вопросы по PHP", создана пользователем alba2001, 2 июн 2013.

  1. alba2001

    alba2001 Активный пользователь

    С нами с:
    7 фев 2012
    Сообщения:
    56
    Симпатии:
    0
    Добрый день!
    Есть страничка: http://kr-presnya.ru/cat.php?id=4400
    При первом заходе на эту страничку по прямой ссылке ч-з браузер, если при этом не открывались другие странички сайта, список изделий не выводится и значение в скобках: "Броши ()" - пустое. Если перечитать страничку или зайти на нее по ссылке с другой странички, то список изделий выводится.
    Теперь вопрос: Нужно спарсить эту страничку. Но парсер естесственно идет по прямой ссылке, на которую выдается страничка без списка изделий, а парсить то нужно именно эти изделия. Как победить эту проблему? Вои пример кода:
    Код (Text):
    1. ?php
    2. /* STEP 1. let’s create a cookie file */
    3.  
    4. $ckfile = tempnam ("/tmp", "CURLCOOKIE");
    5.  
    6. /* STEP 2. visit the homepage to set the cookie properly */
    7.  
    8. $ch = curl_init ("http://kr-presnya.ru/cat.php");
    9. curl_setopt ($ch, CURLOPT_COOKIEJAR, $ckfile);
    10. curl_setopt ($ch, CURLOPT_RETURNTRANSFER, true);
    11. $output = curl_exec ($ch);
    12.  
    13. /* STEP 3. visit cookiepage.php */
    14.  
    15. $ch = curl_init ("http://kr-presnya.ru/cat.php?id=4400");
    16.  
    17. curl_setopt ($ch, CURLOPT_COOKIEFILE, $ckfile);
    18. curl_setopt ($ch, CURLOPT_RETURNTRANSFER, true);
    19. $output = curl_exec ($ch);
    20.  
    21. /* here you can do whatever you want with $output */
    22. ?>
    23. <!DOCTYPE html>
    24. <html>
    25. <head>
    26. </head>
    27. <body>
    28.     <?=$output?>
    29. </body>
    30. </html>
    Спасибо.
     
  2. smitt

    smitt Старожил

    С нами с:
    3 янв 2012
    Сообщения:
    3.166
    Симпатии:
    65
    А какие cookie ты посылаешь в запросе?
    Там требуется что бы был sortcookie.

    Добавлено спустя 37 минут 35 секунд:
    Зачем делать 2 запроса когда нужен 1 cookie(((

    Код (PHP):
    1. $ch = curl_init ("http://kr-presnya.ru/cat.php?id=4400");
    2. curl_setopt($ch,CURLOPT_COOKIE,"sortcookie=sortart_down; domain=kr-presnya.ru; path=/");
    3. curl_setopt ($ch, CURLOPT_RETURNTRANSFER, true);
    4. $output = curl_exec ($ch);
    5.  
     
  3. alba2001

    alba2001 Активный пользователь

    С нами с:
    7 фев 2012
    Сообщения:
    56
    Симпатии:
    0
    Код брал с буржуйского сайта и подставлял в качестве эксперимента.
    Спасибо огромное, код заработал. А как Вы определили какие нужны куки?

    Добавлено спустя 16 минут 9 секунд:
    - нашел ч-з FireBug. Спасибо smitt, вопрос снят.
     
  4. smitt

    smitt Старожил

    С нами с:
    3 янв 2012
    Сообщения:
    3.166
    Симпатии:
    65
    Вообще то для этого ничего не нужно... в любом браузере есть возможность просмотра сохраненных cookie :)