X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> Восстановление заброшенного сайта
k0ttee
k0ttee
Topic Starter сообщение 1.6.2014, 22:57; Ответить: k0ttee
Сообщение #1


Есть такое дело - дохлые сайты поднимать.

Допустим, кто-то когда-то старательно пилил хороший сайт, но потом забил и не стал продлять домен. И тут из кустов выпригивают предприимчивые чувачки. Продляют домен, выдергивают статичную копию сайта из вебархива.
Восстановление дает хорошую фору: получаем готовый сайтик. Правда пересадка на движок будет не тривиальной задачей.

Держу на примете закончившийся домен (какой именно - покажу в конце эксперимента).
Прикрепленное изображение


И на досуге начал писать парсер для выдергивания "останков" из вебархива. Пока парсер только собирает карту, чтобы получить ссылки на все страницы. А выдергивать можно и чем-то другим, Teleport Pro (win) или Wget (lin) подойдут для зеркалирования документов и локализации ссылок. Писать остальное нет острой необходимости.

Делюсь кодом.
В первой строке вписываем ссылку на снапшот главной в вебархиве. И ждем...
На выхлопе будет массив со всеми ссылками.
Если браузер не дожидается выполнения, юзайте старую Оперу 12.хх версии (она дожидается).
На хостинге скрипт не успеет доработать, ибо там ограничение на время выполнения. На локалке все срабатывает, если ваше php позволяет снимать временные границы из скрипта.

Пишу сюда, ибо это и разработка и эксперимент. Да и в ветку "скрипты" мало кто заглядывает.

<?php
$target='http://web.archive.org/web/куча-цифр/http://целевой-сайт.ру/'; #назначение цели

set_time_limit(0); #выполняться оно может очень долго, если сайт большой

#функция извлечения ссылок
function extract_all_links($target,$domain)
{
  #тянем документ
  $file=file_get_contents($target);
  preg_match_all("/<[Aa][\s]{1}[^>]*[Hh][Rr][Ee][Ff][^=]*=[ '\"\s]*([^ \"'>\s#]+)[^>]*>/",$file,$matches); #находим все ссылочки в тексте
  $urls=preg_replace("#(.*)http://#","http://",$matches[1]); #убираем пути вебархива до http://
  $urls=array_unique($urls); #убираем дубли
  #сортируем: если есть $domain (это вышвырнет внешние ссылки и всякий хлам вида "id=" и "javascript:;")
  foreach($urls as $url)
    {
    if(preg_match("#$domain#",$url)) #если есть $domain
      {
      $links[]=$url; #складываем в массив
      }
    }
  #ссылка на главную не нужна
  $links=str_replace('http://'.$domain.'/',null,$links);
  $links=str_replace('http://'.$domain,null,$links);
  $links=array_filter($links); #убрать пустые элементы если есть
  $links=implode("\n",$links); #массив в строку разделяя по \n
  return $links;
}

#экстракт домена
$domain=preg_replace("#(.*)http://#",null,$target);
$domain=str_replace('/',null,$domain);
#экстракт пути на вебархиве
$way=preg_replace("#http://$domain(.*)#",null,$target);

$site_map1=(extract_all_links($target,$domain)); //первый зов к функции, чтобы крамсать ссылки с главной и складываем в список
$index=explode("\n",$site_map1); #складываем линки с главной в массив




#посетим все страницы по ссылкам с главной (страницы 2го уровня вложенности)
foreach($index as $index)
  {
  $site_map2[]=extract_all_links($way.'http://'.$domain.'/'.$index,$domain); #передаем адрес функции и получаем ссылки со страниц 2го уровня вложенности
  }
$site_map2=implode("\n",$site_map2); #массив в строку
$site_map2=explode("\n",$site_map2); #обратно в массив
$site_map2=array_unique($site_map2); #удалим дубли
$index=$site_map2=array_filter($site_map2); #убрать пустые элементы если есть
$site_map2=implode("\n",$site_map2); #массив в строку


#теперь идем на 3й уровень вложенности (глубже нам не надо)
foreach($index as $index)
  {
  $site_map3[]=extract_all_links($way.'http://'.$domain.'/'.$index,$domain); #передаем адрес функции и получаем ссылки со страниц 2го уровня вложенности
  }
$site_map3=implode("\n",$site_map3); #массив в строку разделяя по \n
$site_map3=explode("\n",$site_map3); #обратно в массив
$site_map3=array_unique($site_map3); #удалим дубли ссылок в массиве
$index=$site_map3=array_filter($site_map3); #убрать пустые элементы если есть
$site_map3=implode("\n",$site_map3); #массив в строку

#вывод для проверки (1,2,3 уровни по отдельности)
#echo $site_map1; #УВ 1
#echo "\n<br>\n<br>\n<br>\n";
#echo $site_map2; #УВ 2
#echo "\n<br>\n<br>\n<br>\n";
#echo $site_map3; #УВ 3

$site_map=$site_map1."\n".$site_map2."\n".$site_map3; #сцепка трех уровней в 1 строку
$site_map=explode("\n",$site_map); #разбиваем строку в массив
$site_map=array_unique($site_map); #удалим дубли ссылок в массиве
$site_map=array_filter($site_map); #убрать пустые элементы если есть

print_r($site_map); #вывод массива со всеми ссылками
?>


--------------------
Задонь кибер-коту на крипто-вискас
btc: 3Hq7X9CosVftRFPqWis1Dkk5MdtM1u6jj9
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
prolisk
prolisk
сообщение 1.6.2014, 23:12; Ответить: prolisk
Сообщение #2


я заглядываю.
хочу кстати отметить, что у меня так форум взяли. но стата на ли.ру закрытая была и уже несколько раз на мыло письма шли про восстановление пароля )) не переходил ))


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
mark3000
mark3000
сообщение 2.7.2014, 9:33; Ответить: mark3000
Сообщение #3


Суть в наполнении как я понимаю. Но ведь есть еще более важные задачи, как посещаемость или "пузо" (а для этого вовсе недостаточно "дернуть" контент из вебархива) иначе в чем смысл.


--------------------
LINKOSCOP 4 - работа с внутренней перелинковкой + утилиты для работы.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Siege_mw
Siege_mw
сообщение 2.7.2014, 10:40; Ответить: Siege_mw
Сообщение #4


Интересный код, возможно попробую и я атак раздобыть контента. А вот к примеру если форум такой найти, то как быть с этим контентом? Это же посты от юзеров, как-то вручную потом копипастить под разными никами что ли?
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
k0ttee
k0ttee
Topic Starter сообщение 2.7.2014, 20:32; Ответить: k0ttee
Сообщение #5


Суть в наполнении как я понимаю.

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

как быть с этим контентом?

Мой код только "шуршит" по всем ссылкам и собирает список всех страниц (самих страниц он не выдёргивает).
Страницы можно дёрнуть по собранному списку другой программой. Писать под это еще код не вижу смысла, готовые проги же есть.

вручную потом копипастить под разными никами что ли?

На выходе будет html-выхлоп. А что с ним делать - ваше дело. Можно ничего не делать, а сразу в сапу отправить (только preg_replace'ом вкрутить код в каждый файл).
Можно покрамсать документы на нужные части и импортировать тексты в базу.

P.S:
Такое впечатление, что людям даже от html-исходника в браузере страшно становится.


--------------------
Задонь кибер-коту на крипто-вискас
btc: 3Hq7X9CosVftRFPqWis1Dkk5MdtM1u6jj9
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Miesmies
Miesmies
сообщение 17.7.2014, 22:39; Ответить: Miesmies
Сообщение #6


А это вообще законно? Одно дело - перехватить домен и купить его официально, и совсем другое начать пользоваться чужой интеллектуальной собственностью...

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

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

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Какой % отказов нормален для сайта?
14 Aloof 3382 23.4.2024, 13:50
автор: Vmir
Горячая тема (нет новых ответов) Тема имеет прикрепленные файлыБыстрая индексация страниц сайта и обратных ссылок - 2Index
39 2Index 6736 22.4.2024, 16:16
автор: 2Index
Горячая тема (нет новых ответов) Тема имеет прикрепленные файлыSiteAnalyzer - бесплатная программа для аудита и анализа сайта
77 Chaser 74272 9.4.2024, 11:36
автор: Chaser
Открытая тема (нет новых ответов) Нужен кодер, чтобы пофиксить ошибку Wordpress после переноса сайта
0 Alex-777 944 7.4.2024, 18:05
автор: Alex-777
Горячая тема (нет новых ответов) Продвижение молодого сайта
30 maxmer 6598 26.3.2024, 21:49
автор: c4p1t4l15t


 



RSS Текстовая версия Сейчас: 25.4.2024, 2:54
Дизайн