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 | #!/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 | Цитата:
@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 | Вариантов для реализации очень много, можно и так: # выбираем все ссылки с анкорами со страницы while ($html =~ s/<A[^>]+?HREF\s*=\s*["']?([^'" >]+?)[ '"].*?>([^<]+)//si) { push @Ahtml, $2.": ".$1 } # выводим полученные анкоры и ссылки, каждую пару - с новой строки foreach (@Ahtml) {print $_ . "<br>";} |

No comments:
Post a Comment