Как найти все ссылки / страницы на сайте - PullRequest
82 голосов
/ 17 сентября 2009

Можно ли найти все страницы и ссылки на ЛЮБОМ сайте? Я хотел бы ввести URL-адрес и создать дерево каталогов для всех ссылок с этого сайта?

Я посмотрел HTTrack, но он загружает весь сайт, и мне просто нужно дерево каталогов.

Ответы [ 4 ]

63 голосов
/ 17 сентября 2009

Check linkchecker - он будет сканировать сайт (подчиняясь robots.txt) и сформировать отчет Оттуда вы можете написать решение для создания дерева каталогов.

34 голосов
/ 06 января 2015

Если в вашем браузере есть консоль разработчика (JavaScript), вы можете ввести этот код в:

urls = document.querySelectorAll('a'); for (url in urls) console.log(urls[url].href);

Укороченный:

n=$$('a');for(u in n)console.log(n[u].href)
0 голосов
/ 03 декабря 2014
function getalllinks($url){
$links = array();
if ($fp = fopen($url, 'r')) {
$content = '';
while ($line = fread($fp, 1024)) {
$content .= $line;
}
}
$textLen = strlen($content); 
if ( $textLen > 10){
$startPos = 0;
$valid = true;
while ($valid){
$spos  = strpos($content,'<a ',$startPos);
if ($spos < $startPos) $valid = false;
$spos     = strpos($content,'href',$spos);
$spos     = strpos($content,'"',$spos)+1;
$epos     = strpos($content,'"',$spos);
$startPos = $epos;
$link = substr($content,$spos,$epos-$spos);
if (strpos($link,'http://') !== false) $links[] = $link;
}
}
return $links;
}
try this code....
0 голосов
/ 17 сентября 2009

Если это вопрос программирования, то я бы посоветовал вам написать собственное регулярное выражение для разбора всего найденного содержимого. Целевые теги - IMG и A для стандартного HTML. Для JAVA

final String openingTags = "(<a [^>]*href=['\"]?|<img[^> ]* src=['\"]?)";

это вместе с классами Pattern и Matcher должно определять начало тегов. Добавьте тег LINK, если вы также хотите CSS.

Однако, это не так просто, как вы могли изначально подумать. Многие веб-страницы не очень хорошо сформированы. Извлечь все ссылки программным способом, которые человек может «распознать», действительно сложно, если вам нужно учесть все неправильные выражения.

Удачи!

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