Парсер referats.yandex.ru

Тема в разделе "Мелочи", создана пользователем Jed7777, 14 мар 2010.

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

    Jed7777 Постоялец

    Регистр.:
    17 июл 2008
    Сообщения:
    136
    Симпатии:
    120
    Парсер referats.yandex.ru от Jed7777 на PHP

    [​IMG]
    Код:
    PHP:
    <title>Парсер referats.yandex.ru от Jed7777</title>
    <form method="GET"> 
    <h3>Категория:</h3>
    <input type=radio name=answer value=astronomy checked>astronomy<br>
    <input type=radio name=answer value=geology>geology<br>
    <input type=radio name=answer value=astronomy>astronomy<br>
    <input type=radio name=answer value=gyroscope>gyroscope<br>
    <input type=radio name=answer value=literature>literature<br>
    <input type=radio name=answer value=marketing>marketing<br>
    <input type=radio name=answer value=mathematics>mathematics<br>
    <input type=radio name=answer value=polit>polit<br>
    <input type=radio name=answer value=agrobiologia>agrobiologia<br>
    <input type=radio name=answer value=law>law<br>
    <input type=radio name=answer value=psychology>psychology<br>
    <input type=radio name=answer value=geography>geography<br>
    <input type=radio name=answer value=physics>physics<br>
    <input type=radio name=answer value=philosophy>philosophy<br>
    <input type=radio name=answer value=chemistry>chemistry<br>
    <input type=radio name=answer value=estetica>estetica<br>
    <h3>Сколько текстов: <input name="answer2" size="10" type="text" /><br></h3>
    <input type=submit value=Парсить>
    </form> 
    <?php
    $sat
    =$_GET['answer2'];
    if (@
    $_GET['answer']==="astronomy"$answer "astronomy";
    if (@
    $_GET['answer']==="geology"$answer "geology";
    if (@
    $_GET['answer']==="gyroscope"$answer "gyroscope";
    if (@
    $_GET['answer']==="literature"$answer "literature";
    if (@
    $_GET['answer']==="marketing"$answer "marketing";
    if (@
    $_GET['answer']==="mathematics"$answer "mathematics";
    if (@
    $_GET['answer']==="polit"$answer "polit";
    if (@
    $_GET['answer']==="agrobiologia"$answer "agrobiologia";
    if (@
    $_GET['answer']==="law"$answer "law";
    if (@
    $_GET['answer']==="psychology"$answer "psychology";
    if (@
    $_GET['answer']==="geography"$answer "geography";
    if (@
    $_GET['answer']==="physics"$answer "physics";
    if (@
    $_GET['answer']==="philosophy"$answer "philosophy";
    if (@
    $_GET['answer']==="chemistry"$answer "chemistry";
    if (@
    $_GET['answer']==="estetica"$answer "estetica";
    if (!empty(
    $_GET['answer']))
    {
    for(
    $q=0;$q<$sat;$q++) 

    $url "http://referats.yandex.ru/$answer.xml";
    $ch curl_init($url);
    curl_setopt($chCURLOPT_URL,$url);
    curl_setopt($chCURLOPT_RETURNTRANSFER,1);
    curl_setopt($chCURLOPT_USERAGENT"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)");
    $result curl_exec($ch);
    preg_match('#(?<=\<h1 style\=\"color:black; margin-left:0;\"\>)[\w\W]*\.(?= \<\/p\>)#'$result$key);
    for (
    $i=0;$i<count($key);$i++){
      
    $a=$key[$i];
      } 
    $str2 strip_tags($a);
    echo 
    "Текст №"$q" спарсен.<br>";
    file_put_contents ("$answer$q.txt"$str2);
    }
    }
    ?>
    Парсит на отдельные файлы с порядковыми названиями, давольно шустро:), что то вроде:
     
    benya, shutty и zzallexx нравится это.
  2. Jed7777

    Jed7777 Постоялец

    Регистр.:
    17 июл 2008
    Сообщения:
    136
    Симпатии:
    120
    Парсит по другому, дольше и больше без ограничения времени:
    PHP:
    <title>Парсер referats.yandex.ru от Jed7777</title>
    <form method="GET"> 
    <h3>Категория:</h3>
    <input type=radio name=answer value=astronomy checked>astronomy<br>
    <input type=radio name=answer value=geology>geology<br>
    <input type=radio name=answer value=astronomy>astronomy<br>
    <input type=radio name=answer value=gyroscope>gyroscope<br>
    <input type=radio name=answer value=literature>literature<br>
    <input type=radio name=answer value=marketing>marketing<br>
    <input type=radio name=answer value=mathematics>mathematics<br>
    <input type=radio name=answer value=polit>polit<br>
    <input type=radio name=answer value=agrobiologia>agrobiologia<br>
    <input type=radio name=answer value=law>law<br>
    <input type=radio name=answer value=psychology>psychology<br>
    <input type=radio name=answer value=geography>geography<br>
    <input type=radio name=answer value=physics>physics<br>
    <input type=radio name=answer value=philosophy>philosophy<br>
    <input type=radio name=answer value=chemistry>chemistry<br>
    <input type=radio name=answer value=estetica>estetica<br>
    <h3>Сколько текстов: <input name="answer2" size="10" type="text" /><br></h3>
    <input type=submit value=Парсить>
    </form> 
    <?php
    set_time_limit
    (0);
    $sat=$_GET['answer2'];
    if (@
    $_GET['answer']==="astronomy"$answer "astronomy";
    if (@
    $_GET['answer']==="geology"$answer "geology";
    if (@
    $_GET['answer']==="gyroscope"$answer "gyroscope";
    if (@
    $_GET['answer']==="literature"$answer "literature";
    if (@
    $_GET['answer']==="marketing"$answer "marketing";
    if (@
    $_GET['answer']==="mathematics"$answer "mathematics";
    if (@
    $_GET['answer']==="polit"$answer "polit";
    if (@
    $_GET['answer']==="agrobiologia"$answer "agrobiologia";
    if (@
    $_GET['answer']==="law"$answer "law";
    if (@
    $_GET['answer']==="psychology"$answer "psychology";
    if (@
    $_GET['answer']==="geography"$answer "geography";
    if (@
    $_GET['answer']==="physics"$answer "physics";
    if (@
    $_GET['answer']==="philosophy"$answer "philosophy";
    if (@
    $_GET['answer']==="chemistry"$answer "chemistry";
    if (@
    $_GET['answer']==="estetica"$answer "estetica";
    if (!empty(
    $_GET['answer']))
    {
    for(
    $q=0;$q<$sat;$q++) 

    $url "http://referats.yandex.ru/$answer.xml";
    $ch curl_init($url);
    curl_setopt($chCURLOPT_URL,$url);
    curl_setopt($chCURLOPT_RETURNTRANSFER,1);
    curl_setopt($chCURLOPT_USERAGENT"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)");
    $result curl_exec($ch);
    preg_match('#(?<=\<h1 style\=\"color:black; margin-left:0;\"\>)[\w\W]*\.(?= \<\/p\>)#'$result$key);
    for (
    $i=0;$i<count($key);$i++){
      
    $a=$key[$i];
      } 
    $str2 strip_tags($a);
    $str2 str_replace("Тема: «","",$str2);
    $str2 str_replace("»","",$str2);
    $ch2 curl_init($url);
    curl_setopt($ch2CURLOPT_URL,$url);
    curl_setopt($ch2CURLOPT_RETURNTRANSFER,1);
    curl_setopt($ch2CURLOPT_USERAGENT"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)");
    $result curl_exec($ch2);
    preg_match('#(?<=\<h1 style\=\"color:black; margin-left:0;\"\>)[\w\W]*\.(?= \<\/p\>)#'$result$key);
    for (
    $i=0;$i<count($key);$i++){
      
    $a=$key[$i];
      } 
    $str23 strip_tags($a);
    $ch3 curl_init($url);
    curl_setopt($ch3CURLOPT_URL,$url);
    curl_setopt($ch3CURLOPT_RETURNTRANSFER,1);
    curl_setopt($ch3CURLOPT_USERAGENT"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)");
    $result curl_exec($ch3);
    preg_match('#(?<=\<h1 style\=\"color:black; margin-left:0;\"\>)[\w\W]*\.(?= \<\/p\>)#'$result$key);
    for (
    $i=0;$i<count($key);$i++){
      
    $a=$key[$i];
      } 
    $str234 strip_tags($a);
    $abc $str2."\r\n\r\nСледующее по теме:\n\r\n".$str23."\r\n\r\n".$str234;
    echo 
    "Текст №"$q" спарсен.<br>";
    file_put_contents ("$answer$q.txt"$abc);
    }
    }
    ?>
    Что получается в одном файле:
     
  3. InoffLine

    InoffLine

    Регистр.:
    18 апр 2007
    Сообщения:
    573
    Симпатии:
    155
    И как, яндекс, индексирует?
     
  4. Jed7777

    Jed7777 Постоялец

    Регистр.:
    17 июл 2008
    Сообщения:
    136
    Симпатии:
    120
    Теоретически должен. Сейчас руки не доходят поставить на сайт контент.
     
  5. Meduk

    Meduk Постоялец

    Регистр.:
    23 фев 2010
    Сообщения:
    75
    Симпатии:
    2
    Яндекс относится положительно) чё то тут с хайдами на парсер загнули) Я нашёл за 5 сек в гугле smparser вроде.Так же есть возможность использования прокси и задержка.
     
  6. Jed7777

    Jed7777 Постоялец

    Регистр.:
    17 июл 2008
    Сообщения:
    136
    Симпатии:
    120
    Хайд не обсуждается. Я автор, я и поставил:) Пользуйтесь smparser:)
     
Статус темы:
Закрыта.