Подтвердить что ты не робот

Как найти все ссылки/страницы на веб-сайте

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

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

4b9b3361

Ответ 1

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

Ответ 2

Или вы можете использовать Google для отображения всех страниц, которые он проиндексировал для этого домена. Например: site:www.bbc.co.uk

Ответ 3

Если у вас есть консоль разработчика (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)

Ответ 4

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

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

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

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

Удачи!

Ответ 5

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....