Скрыть объявление
Гость отличная новость! Мы открыли доступ к ранее скрытому контенту.

Вам доступно более 44 000 видео уроков, книг и программ без VIP статуса. Более подробно ЗДЕСЬ.

Скачать Парсер (web.archive.org)

Тема в разделе "Программы, скрипты", создана пользователем InfoNews, 20 дек 2014.

0/5, Голосов: 0

  1. InfoNews

    InfoNews Модератор

    Сообщения:
    17.815
    Симпатии:
    19.374
    Однажды вечером, я как обычно сидел за компьютером и гуглил яндекс. Но ни на одном сайте нужной мне информации не нашлось. Я уже было отчаялся, когда мне на глаза попалась нужная ссылка, но как назло, сайт был удален, и выдернуть информацию можно было только из кэша гугла или из вебархива. И я решил написать небольшой парсер вэбархива на php.

    Задача парсера заключалась в том, чтобы найти все сохраненные страницы нужного сайта, выбрать из них самые свежие и выдать ссылки на них.

    Собственно для того чтобы получить все ссылки которые есть в архиве, нужно открыть страницу

    Код:
    $content=file_get_contents('http://web.archive.org/web/*/site.ru*');
    где site.ru - искомый сайт.


    Далее нужно пропарсить страницу и определить дату последнего добавления в архив каждой страницы site.ru.​

    Код:
    preg_match_all("/(web\/query\?q([a-zA-Z0-9.&;_=%+-]){1,})\">(.*)/i",$content,$matches,PREG_SET_ORDER); /находим все ссылки у которых несколько копий в архивеpreg_match_all("/web\/([0-9]{14})(.*)\">(.*)/i",$content,$matches1,PREG_SET_ORDER); / находим ссылки у которых только одна копияpreg_match_all("/(.*)/i",$content,$last,PREG_SET_ORDER); /парсим дату последнего обновления страницы
    Ссылка на страницу, которую вэбархив сканировал только один раз выглядит примерно так:http://web.archive.o...te.ru/index.phpгде 20111110094202 - дата и время сканирования (2011.11.10 09:42:02). Теперь, когда у нас есть даты последнего обновления, мы можем перевести их в требуемый формат:​

    Код:
    function convert($str){ $tmp=str_replace(",","",$str); $tmp=strtotime($tmp); $m=idate("m",$tmp); if($m<10)$m="0".$m; $d=idate("d",$tmp); if($d<10)$d="0".$d; $tmp=idate("Y",$tmp).$m.$d."235959"; return $tmp;}
    Ну и наконец обрабатываем все ссылки:​

    Код:
    foreach($matches as $m){ $m[1]=convert($m[1]); echo "<a href="http://web.archive.org/web/$m/'.$m[3].'">'.$m[3]."</a><br>\r\n";}foreach($matches1 as $mc){ echo "<a href=\"http://web.archive.org/web/".$mc[1].$mc[2]."\">".$mc[2]."</a><br>\r\n";}
    Скрытый текст:
    Скрытый текст:

      Для просмотра скрытого текста Вы должны зарегистрироваться и нажать кнопку "Мне нравится"




     
    Отзыв После просмотра материала "Парсер (web.archive.org)" оставьте свою оценку и отзыв в данной теме
Оценить эту тему:
/5,
Поделиться: