парсер с сайта www.kinopoisk.ru

Тема в разделе "Мелочи", создана пользователем Joker84, 23 мар 2008.

Статус темы:
Закрыта.
  1. Joker84

    Joker84 Постоялец

    Регистр.:
    8 авг 2007
    Сообщения:
    68
    Симпатии:
    2
    Добый день я конечно не гуру в php и пишу всего лишь 3 парсер но наткнулся на такую проблему и прошу о помощи.

    Код:
    $source = file_get_contents('http://www.kinopoisk.ru/level/1/film/195524/');
    if (!$source) die('Nothing found!');
    
    И он постоянно выводит что нечиго с данного URL несграбленно.

    как решить эту проблему??? с других сайтов все грабиться на ура
    может быть есть другие ф-и подскажите
     
  2. ozware

    ozware

    Регистр.:
    22 апр 2007
    Сообщения:
    327
    Симпатии:
    42
    попробуйте сграбить страницу своего сайта, а потом глянуть какой там будет user-agent и IP.
    скорее всего бан по UA/IP или все вместе.
    сам таких "грабителей" постоянно баню на своих сайтах. :)
    хотя от грамотного парсера защиты нет.
     
  3. sw04

    sw04 seoplayer

    Регистр.:
    1 дек 2007
    Сообщения:
    601
    Симпатии:
    193
    Joker88, советую воспользоваться curl.
    Часа 2 изучения сэкономят достаточно времени.
     
    Joker84 нравится это.
  4. lolshik

    lolshik

    Регистр.:
    21 фев 2008
    Сообщения:
    316
    Симпатии:
    127
    PHP:
    <?php
    $ch 
    curl_init("http://kinopoisk.ru/");
    $fp fopen("example_homepage.txt""w");

    curl_setopt($chCURLOPT_FILE$fp);
    curl_setopt($chCURLOPT_HEADER0);

    curl_exec($ch);
    curl_close($ch);
    fclose($fp);
    ?>

    Сохраняет
     
    Joker84 нравится это.
  5. Rando

    Rando Прохожие

    Возможно на кинопоиске идет проверка на USER_AGENT или какие-то другие данные которые помогают определить пользователя?
     
  6. Joker84

    Joker84 Постоялец

    Регистр.:
    8 авг 2007
    Сообщения:
    68
    Симпатии:
    2

    Спасибо за советы попробовал реализовать
    выдает ошибкку

    Fatal error: Call to undefined function curl_init() in номер страки с $ch = curl_init("http://kinopoisk.ru/");


    Может что у меня в php отключено стоит php 5.x
     
  7. sw04

    sw04 seoplayer

    Регистр.:
    1 дек 2007
    Сообщения:
    601
    Симпатии:
    193
    Вот если ты хочешь, чтоб работало, сядь и почитай.
    Там написано, какие бибилиотеки и как включить.
    loshik, если бы приведенный пример работал, то у автора вообще не было бы проблем.
    в том-то и прикол, что USER AGENT'a можно поменять, да и вообще практически любой параметр можно поменять с помощью curl.
     
  8. lolshik

    lolshik

    Регистр.:
    21 фев 2008
    Сообщения:
    316
    Симпатии:
    127
    sw04, мне самому интересно парсить с кинопоиска.
    Я выложил код, котрым сам пытаюсь это сделать. Но не получается. Просто я не написал в своём посте что не работает =(
    Кто что предложит?

    Добавлено через 45 минут
    Путём недолгого курения манов было получено вот это

    PHP:
    <?php

    $userAgent 
    "Opera/9.0 (Windows NT 5.1; U; en)";
    $target_url "http://kinopoisk.ru";

    $ch curl_init();
    curl_setopt($chCURLOPT_USERAGENT$userAgent);
    curl_setopt($chCURLOPT_URL,$target_url);
    curl_setopt($chCURLOPT_FAILONERRORtrue);
    curl_setopt($chCURLOPT_FOLLOWLOCATIONtrue);

    curl_setopt($chCURLOPT_RETURNTRANSFER,true);
    curl_setopt($chCURLOPT_TIMEOUT100);

    $html curl_exec($ch);
    if (!
    $html) {
    echo 
    "<br />cURL error number:" .curl_errno($ch);
    echo 
    "<br />cURL error:" curl_error($ch);
    exit;
    }
    else {
        echo 
    $html;
        }
    ?>
    И ведь работает, скотина. Даже приятно =)
    Правда не известно, как быстро твой ip попадёт в бан на этом ресурсе. Наверняка парсеров как то вычесляют и режут.
     
  9. lolshik

    lolshik

    Регистр.:
    21 фев 2008
    Сообщения:
    316
    Симпатии:
    127
    Собственно нашёл где зарыли собаку.

    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);

    Как я понял, после проверки всех параметров при соединении к серверу кинопоиска нас перенаправляют по нужному адресу. Так вот эта строчка нам и нужна.

     
    Joker84 нравится это.
  10. Joker84

    Joker84 Постоялец

    Регистр.:
    8 авг 2007
    Сообщения:
    68
    Симпатии:
    2
    lolshik, ага спасибо большое действительно получилось. почитал про curl много давольно интересного для себя открыл. будутеперь резать html страницу и брать данные
     
Статус темы:
Закрыта.