Frage

Ist es möglich, alle Seiten und Links auf einer bestimmten Website zu finden? Ich möchte eine URL eingeben und einen Verzeichnisbaum aller Links von dieser Seite her?

Ich habe bei HTTrack sieht aber, dass lädt die gesamte Website und ich brauche einfach den Verzeichnisbaum.

War es hilfreich?

Lösung

Schauen Sie sich linkchecker -es wird die Website kriechen (während robots.txt gehorchend) und einen Bericht erstellen. Von dort können Sie eine Lösung für die Erstellung der Verzeichnisstruktur Skript.

Andere Tipps

Wenn Sie die Entwicklerkonsole (JavaScript) in Ihrem Browser haben, können Sie diesen Code eingeben:

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

Verkürzte:

n=$$('a');for(u in n)console.log(n[u].href)

Wenn dies eine Programmierung Frage ist, dann würde ich vorschlagen, dass Sie Ihre eigenen regulären Ausdruck schreiben alle abgerufenen Inhalte zu analysieren. Target-Tags sind IMG und A für Standard-HTML. Für JAVA,

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

diese zusammen mit Klassen Pattern und Matcher sollten den Beginn der Tags erfassen. In LINK-Tag, wenn Sie auch CSS wollen.

Allerdings ist es nicht so einfach, wie Sie intially gedacht haben. Viele Webseiten sind nicht wohlgeformt. Extrahieren Sie alle Links programmatisch, dass Mensch kann „erkennen“ wirklich schwierig ist, wenn man bedenkt, alle irregulären Ausdrücke nehmen.

Viel Glück!

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....
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top