Перейти к содержимому








Фотография
Скачать

Парсер (web.archive.org)



  • Авторизуйтесь для ответа в теме
Сообщений в теме: 8

#1 InfoSra4ka

InfoSra4ka

    Old Member

  • Platinum +
  • Сообщений: 1 021
  • Регистрация: 06.10.2013
  • Заработано: 306 руб.
Репутация: 124

Награды: 33

  
  
  
  
  
  
  
  

Отправлено 20 Ноябрь 2013 - 13:37

Однажды вечером, я как обычно сидел за компьютером и гуглил яндекс. Но ни на одном сайте нужной мне информации не нашлось. Я уже было отчаялся, когда мне на глаза попалась нужная ссылка, но как назло, сайт был удален, и выдернуть информацию можно было только из кэша гугла или из вебархива. И я решил написать небольшой парсер вэбархива на 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";
}

Скрытый контент:

  Для просмотра содержимого необходимо 30 очков репутации (вам не хватает 30)

 Скачать без ограничений   Купить этот материал за 390 руб.


  • 5

#2 Lenin

Lenin
  • Сливапер LVL 4
  • Сообщений: 32
  • Регистрация: 17.11.2013
  • Заработано: 0 руб.
Репутация: 32

Награды: 10

  
  
  
  
  
  
  
  

Отправлено 20 Ноябрь 2013 - 23:08

Это то что мне нужно.


  • 0

#3 drussik

drussik

    Заблокированный

  • Заблокированные
  • Сообщений: 89
  • Регистрация: 15.10.2013
  • Заработано: 0 руб.
Репутация: 24

Награды: 9

  
  
  
  
  
  
  
  

Отправлено 07 Декабрь 2013 - 15:59

чета непонял - на выходе получим тока линки на страницы требуемого сайта??


  • 0

#4 HunterNNm

HunterNNm
  • Сливапер LVL 4
  • Сообщений: 52
  • Регистрация: 13.12.2013
  • Заработано: 0 руб.
Репутация: 1

Награды: 10

  
  
  
  
  
  
  
  

Отправлено 17 Декабрь 2013 - 20:12

А почему не написать с использованием CURLa? Получилось бы более функционально. Если кому надо - черканите в личку, напишу безвозмездно!


  • 0

#5 Korsar

Korsar
  • Новичок
  • Сообщений: 8
  • Регистрация: 16.01.2014
  • Заработано: 0 руб.
Репутация: 1

Награды: 10

  
  
  
  
  
  
  
  

Отправлено 17 Январь 2014 - 10:36


 

Спасибо большое! Уже 100 лет ищу рабочий парсер вебархива. Получилось очень круто, но может ли кто-то еще помочь с кодом следующей итерации парсера:

1. Полученный список страниц необходимо скачать и сохранить на комп в виде архива. При этом так, чтобы получился в итоге простой рабочий .html сайт.

2. При этом в списке полученных ссылок есть ссылки на страницы, которых на самом деле нет в вебархиве: "Wayback Machine doesn't have that page archived." Можно ли каким-то образом чистить такие ссылки и не сохранять их в итоговый вариант?

Ну и отдельная просьба HunerNNm каким-то образом выйти на связь. Личка у вас не работает - не могу написать

 

 

 

 


Сообщение отредактировал Korsar: 17 Январь 2014 - 10:39

  • 0

#6 Korsar

Korsar
  • Новичок
  • Сообщений: 8
  • Регистрация: 16.01.2014
  • Заработано: 0 руб.
Репутация: 1

Награды: 10

  
  
  
  
  
  
  
  

Отправлено 20 Январь 2014 - 10:35

Напишу еще раз.

Если вдруг кто-то готов доработать парсер, напишите, мне пожалуйста. Готов заплатить.


  • 0

#7 Medito

Medito
  • Сливапер LVL 1
  • Сообщений: 8
  • Регистрация: 15.10.2014
  • Заработано: 0 руб.
Репутация: 15

Награды: 10

  
  
  
  
  
  
  
  

Отправлено 15 Октябрь 2014 - 11:21

Напишу еще раз.

Если вдруг кто-то готов доработать парсер, напишите, мне пожалуйста. Готов заплатить.

Добрый день!

Вы смогли найти того кто доработал или это еще в планах? 


  • 0

#8 themelock

themelock
  • Premium
  • Сообщений: 75
  • Регистрация: 07.12.2014
  • Заработано: 1 руб.
Репутация: 55

Награды: 15

  
  
  
  
  
  
  
  

Отправлено 07 Декабрь 2014 - 18:26

Скрытый контент:

  Для просмотра содержимого необходимо 50 очков репутации (вам не хватает 50)

 Скачать без ограничений   Купить этот материал за 390 руб.


Сообщение отредактировал themelock: 07 Декабрь 2014 - 18:30

  • 0

#9 markalisa548

markalisa548
  • Сливапер LVL 1
  • Сообщений: 8
  • Регистрация: 02.04.2015
  • Заработано: 0 руб.
Репутация: 1

Награды: 10

  
  
  
  
  
  
  
  

Отправлено 08 Апрель 2015 - 10:24

Подскажите пожалуйста, этот парсер собирает ссылки на страницы в Вебархиве или чистит их и выдает чистые ссылки на страницы самого сайта, без /web.archive.org/web/20141229030558/... ?


  • 0



Похожие темы Collapse

Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 анонимных

×

Зарегистрируйся моментально!