Форум успешных вебмастеров - GoFuckBiz.com

  Форум успешных вебмастеров - GoFuckBiz.com > Бизнес-решения > Скрипты, программы и технические решения
Дата
USD/RUB59.0510
BTC/USD0.0000
Скрипты, программы и технические решения Обсуждаем скрипты, программы и новые технологии.

Закрытая тема
Опции темы Опции просмотра
Старый 20.07.2008, 17:18   #1
sunford
Senior Member
 
Аватар для sunford
 
Регистрация: 10.04.2007
Сообщений: 277
Бабло: $54406
По умолчанию нужно выпарсить все линки из списка сайтов

Нужен скрипт или десктопная прога, позволяющая выпарсить все линки из списка сайтов. И сохранить их в тхт док. В пхп не шарю .. найти что то не выходит подскажите плиз или накидайте код
sunford вне форума  
Старый 20.07.2008, 17:25   #2
solar
Senior Member
 
Регистрация: 04.04.2007
Сообщений: 607
Бабло: $7700
По умолчанию

firefox + web developer addon
для каждой страницы Information->View Links , копируешь в эхель, сортируешь

а если под юникс, могу дать скриптец небольшой на перле
solar вне форума  
Старый 20.07.2008, 18:19   #3
solar
Senior Member
 
Регистрация: 04.04.2007
Сообщений: 607
Бабло: $7700
По умолчанию

ну я не претендую на что то, это вообще пример из книги:

берем простой скрипт на перле (ниже)
надо только установить пару модулей выполнив команды
cpan -i HTML::LinkExtor и cpan -i LWP::Simple либо пнув админа.

тестим скрипт perl xurl.pl http://yandex.ru, если не работает, значит нет модулей или перла.

берем урлы и кладем в файл urls.txt 1 на строку
запускаем в bash
for u in `cat urls.txt`; do perl xurl.pl $u >> output.txt; done
Код:
#!/usr/local/bin/perl
# xurl - extract unique, sorted lists of links from URL
use HTML::LinkExtor;
use LWP::Simple;

$base_url = shift;
$parser = HTML::LinkExtor->new(undef, $base_url);
$parser->parse(get($base_url))->eof;
@links = $parser->links;
foreach $linkarray (@links) {
  local(@element) = @$linkarray;
  local($elt_type) = shift @element;
  while (@element) {
    local($attr_name, $attr_value) = splice (@element, 0, 2);
    $seen{$attr_value}++;
  }
}
for (sort keys %seen) { print $_, "\n"}
solar вне форума  
Старый 20.07.2008, 18:32   #4
se_home
Member
 
Аватар для se_home
 
Регистрация: 05.08.2007
Сообщений: 72
Бабло: $875
По умолчанию

Все зависит от объемов, если до 500-1000 урлов откуда надо собрать линки за раз - то подойдет скрипт, приведенный здесь - если надо больше и быстрее, то это уже сложнее.
se_home вне форума  
Старый 20.07.2008, 18:56   #5
sunford
Senior Member
 
Аватар для sunford
 
Регистрация: 10.04.2007
Сообщений: 277
Бабло: $54406
ТС -->
автор темы ТС По умолчанию

Спасибо работает супер
sunford вне форума