За последние 24 часа нас посетили 64722 программиста и 1747 роботов. Сейчас ищут 873 программиста ...

парсинг сайта

Тема в разделе "Прочие вопросы по PHP", создана пользователем parrow, 25 авг 2014.

  1. parrow

    parrow Новичок

    С нами с:
    25 окт 2013
    Сообщения:
    11
    Симпатии:
    0
    Доброе утро! Проблема с парсингом сайта http://altei.ru/. Блокирует доступ к товарам-в переменные попадает фраза - "Unauthorized access". Пользуюсь библиотекой cUrl со всеми прибамбасами, но эффекта 0..
     
  2. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    Ну, а мы тут при чем?
    Все телепаты в отпуске.
    У меня все норм.
    Код (PHP):
    1. $curl=curl_init('http://altei.ru/main/knizhki_dlya_malyishki');
    2. $setopt=array(
    3.     CURLOPT_RETURNTRANSFER=>1,
    4.     CURLOPT_FOLLOWLOCATION=>1,
    5.     CURLOPT_SSL_VERIFYPEER=>0
    6. );
    7. foreach($setopt as $const => $int) {
    8.     curl_setopt($curl,$const,$int);
    9. }
    10. $html=curl_exec($curl);
    11. $dom=new DOMDocument('1.0','utf-8');
    12. $dom->loadHTML($html);
    13. $xpath=new DomXPath($dom);
    14. $xquery=$xpath->query('//*[contains(@class,"list_book")]');
    15. print_r($xquery->item(0)); 
     
  3. parrow

    parrow Новичок

    С нами с:
    25 окт 2013
    Сообщения:
    11
    Симпатии:
    0
    Код (Text):
    1. // функция парсинга
    2. $ch = curl_init();
    3. // параметры подключения
    4. curl_setopt($ch, CURLOPT_REFERER, 'http://google.com');
    5. curl_setopt($ch, CURLOPT_HEADER, 0);
    6. curl_setopt($ch, CURLOPT_USERAGENT, "Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.9.168 Version/11.51");
    7. curl_setopt($ch, CURLOPT_URL, $url);
    8. curl_setopt($ch, CURLOPT_POST, 0);
    9. curl_setopt($ch, CURLOPT_COOKIEFILE,'cookies.txt');
    10. curl_setopt($ch, CURLOPT_COOKIEJAR,'cookies.txt');
    11. curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
    12. curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
    13. curl_setopt($ch, CURLOPT_ENCODING, 'UTF-8');
    14. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    15. curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    16. curl_setopt($ch, CURLOPT_CONNECTTIMEOUT_MS, 0);
    17. curl_setopt($ch, CURLOPT_TIMEOUT, 40000);
    18. $res=curl_exec($ch);
    19.  
    20. // передача содержание страницы в переменную
    21. $html = new simple_html_dom();
    22. $html->load($res);
    23. $div=$html->find("div[class='content']");
    24. preg_match_all("/(?<=>)[^<>]+(?=<)/",$div[0],$div);
    25. $div=array_filter($div[0],"filter");
    26. $div=array_values($div);
    Вот мой код. Спасибо за пост - буду пробывать

    Добавлено спустя 24 минуты 49 секунд:
    Эту страницу удается парсить без проблем. Не получается открыть страницы именно с товаром, например как: http://www.altei.ru/main/knizhki_dlya_malyishki/ves_nov_god
     
  4. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    Код (PHP):
    1. $curl=curl_init('http://www.altei.ru/main/knizhki_dlya_malyishki/ves_nov_god');
    2. $setopt=array(
    3.     CURLOPT_RETURNTRANSFER=>1,
    4.     CURLOPT_FOLLOWLOCATION=>1,
    5.     CURLOPT_SSL_VERIFYPEER=>0
    6. );
    7. foreach($setopt as $const => $int) {
    8.     curl_setopt($curl,$const,$int);
    9. }
    10. $html=curl_exec($curl);
    11. $dom=new DOMDocument('1.0','utf-8');
    12. $dom->loadHTML($html);
    13. $xpath=new DomXPath($dom);
    14. $xquery=$xpath->query('//*[contains(@class,"content")]');
    15. print_r($xquery->item(0));
    16.  
    No problems!