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



 

Здравствуйте, гость ( Вход | Регистрация )

Открыть тему
Тема закрыта
> Помогите немного доработать скрипт, сбор внутренних ссылок
Biznessman
Biznessman
Topic Starter сообщение 1.4.2013, 10:53; Ответить: Biznessman
Сообщение #1


Завсегдатай
*****

Группа: Active User
Сообщений: 686
Регистрация: 22.7.2009
Из: Україна
Поблагодарили: 187 раз
Репутация:   49  


Здравствуйте!
Моя задача:
собрать все внутренние ссылки со списка URL.
Вот нашел скрипт, который собирает внешние ссылки, но в нем каждую страницу нужно вводить вручную.
Можно его как-то модифицировать, что бы вводить список URL и на выходе мы получали все внутренние ссылки со всего списка.
+ в результатах должны быть только ссылки (без анкоров).
Сам скрипт:
Развернуть/Свернуть

<html>
<head>
<title>links</title>
</head>
<body>
<h2>links</h2>
<?php

function site_copy($url){
$tmp0 = 'temp/site_copy0.php';
$tmp = 'temp/site_copy.php';
$rez = '';
$rez = @file_get_contents($url);
file_put_contents ($tmp0,$rez);
$rz = @file_get_contents($tmp0);
$rz = preg_replace ( "'<!--(.+?)-->'si", "", $rz );
$rz = preg_replace ( "'<script(.+?)</script>'si", "", $rz );
$rz = preg_replace ( "'<style(.+?)</style>'si", "", $rz );
$rz = preg_replace ( "'<img(.+?)>'si","<img src='images/links.gif'>", $rz);
$rz = eregi_replace ( '"', '', $rz );
$rz = eregi_replace ( "'", "", $rz );
$rz = eregi_replace ( '=//', "=http://", $rz );
$rz = preg_replace ( "'<a(.+?)href'si", "<a href", $rz );
$rz = preg_replace ( "'<a href( +?)='si", "<a href=", $rz );
$rz = preg_replace ( "'<a href=( +?)'si", "<a href=", $rz );
$rz = preg_replace ( "'title(.+?)>'si", ">", $rz );
$rz = preg_replace ( "'target(.+?)>'si", ">", $rz );
file_put_contents ($tmp,$rz);
}

function inlinks($url){
$tmp = 'temp/site_copy.php';
$str=file_get_contents($tmp);
preg_match_all ( "'<a(.+?)>(.*?)</a>'si", $str, $links );
$rez=''; $nn=0;
for ($i=0; $i< count($links[0]); $i++)
{
if (substr_count ($links[1][$i],'//')==0)
{ //str_replace("\n",'',$pr);
$nn++;
$rez=$rez .$nn .' ' .$links[0][$i] ."   \n" . substr($links[1][$i],6) . "\n<br>";
}
}
$rez='<br>  Найдено ' .$nn .' внутренних ссылок<br><br>' .$rez;
return $rez;
}

?>

<form method="POST" id="form" name="form" action="" accept-charset="utf-8" >
Введите адрес сайта:<br>
<input type="text" name="url" id="url" value="" onclick="this.form.url.value=this.form.url.value.replace('http://', '');">
<input type="submit" name="go" value=" пуск " onclick="this.form.url.value=this.form.url.value.replace('http://', '');">
</form>


<?php
$url = 'http://' .$_REQUEST['url'];
if (($url!='') && isset($url)){
site_copy($url);
echo inlinks($url);
}
?>
<br><br>
</body>
</html>


АПД: Если у кого-то есть другое решение моей задачи - с удовольствием выслушаю.
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
kRicha
kRicha
сообщение 1.4.2013, 11:48; Ответить: kRicha
Сообщение #2


Завсегдатай
*****

Группа: Active User
Сообщений: 932
Регистрация: 29.6.2010
Из: Киева
Поблагодарили: 222 раза
Репутация:   39  


Biznessman, помогаю.

Заменияете инпут на тексареа, вводите туда список адресов, эксполодом получаете массив адресов и форичем проходишь по всему архиву. Все.


--------------------


Поблагодарили: (1)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Max_Q
Max_Q
сообщение 1.4.2013, 21:31; Ответить: Max_Q
Сообщение #3


Участник
***

Группа: User
Сообщений: 118
Регистрация: 13.11.2011
Поблагодарили: 46 раз
Репутация:   13  


Biznessman, я так понимаю цель написать обычный скрипт-паук. Если так, то готовых решений уже предостаточно. Поищите в гуглу php crawler. В github'e их полно.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

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

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Помогите разобраться с Android TV
2 MakDonald 139 Сегодня, 21:09
автор: MakDonald
Открытая тема (нет новых ответов) Помогите выбрать ноутбук
Ноутбук для детей
23 kstnews 470 Сегодня, 16:14
автор: kstnews
Открытая тема (нет новых ответов) Тема имеет прикрепленные файлыГде взять скрипт круговой индикатор выполнения
3 slavyn 469 14.12.2017, 22:55
автор: Caterpillar
Открытая тема (нет новых ответов) Помогите выбрать программу
Помогите выбрать программу
11 impak 1363 11.12.2017, 13:11
автор: Mikki
Открытая тема (нет новых ответов) Помогите найти плагин на WP
Отзывы с профилей соц сетей
1 SEOMR 452 30.11.2017, 7:18
автор: Nell


 



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