http://searchengines.guru/showthread.php?t=136923
30.04.2007, 11:18 | #3 |
Аспирант Регистрация: 09.01.2007 Сообщений: 132 Репутация: -700 | Re: Вытаскиваем все ссылки из HTML perl'ом не работает |
30.04.2007, 11:52 | #4 |
Студент Регистрация: 02.03.2006 Сообщений: 27 Репутация: 4292 | Re: Вытаскиваем все ссылки из HTML perl'ом #!/usr/bin/perl # Более подробно print "Content-type: text/html\n\n"; # указываем путь к HTML-файлу $file = "/путь к файлу/my_file.htm"; # читаем HTML-файл и пишем все в массив open (FILE,"<$file"); @html=<FILE>; close(FILE); # преобразуем массив строк HTML-страницы в строку $html = join("",@html); # выбираем все ссылки со страницы @html = $html =~ m/<A[^>]+?HREF\s*=\s*["']?([^'" >]+?)[ '"].*?>/sig; # выводим полученные ссылки, каждая - с новой строки foreach (@html) { print $_ . "<br>"; } |
30.04.2007, 12:27 | #5 |
Аспирант Регистрация: 09.01.2007 Сообщений: 132 Репутация: -700 | Re: Вытаскиваем все ссылки из HTML perl'ом интересно, а анкоры вытащить намного сложнее? можете помочь со скриптом? |
30.04.2007, 13:34 | #6 | |
Профессор Регистрация: 14.01.2007 Сообщений: 869 Репутация: 122923 | Re: Вытаскиваем все ссылки из HTML perl'ом Цитата:
@links= $html =~ m/<A[^>]+?HREF\s*=\s*["']?([^'" >]+?)[ '"].*?>/sig; @anchors= $html =~ m/<A[^>]+?HREF\s*=\s*["']?[^'" >]+?[ '"].*?>([^<]+)/sig; # выводим полученные ссылки, каждая - с новой строки foreach (@links) { print $_ . "<br>"; } foreach (@anchors) { print $_ . "<br>"; } типа того... | |
30.04.2007, 14:03 | #7 |
Студент Регистрация: 02.03.2006 Сообщений: 27 Репутация: 4292 | Re: Вытаскиваем все ссылки из HTML perl'ом Вариантов для реализации очень много, можно и так: # выбираем все ссылки с анкорами со страницы while ($html =~ s/<A[^>]+?HREF\s*=\s*["']?([^'" >]+?)[ '"].*?>([^<]+)//si) { push @Ahtml, $2.": ".$1 } # выводим полученные анкоры и ссылки, каждую пару - с новой строки foreach (@Ahtml) {print $_ . "<br>";} |
No comments:
Post a Comment