Warum erhält wget beim Spiegeln dieser Site nicht alle Seiten?

Warum erhält wget beim Spiegeln dieser Site nicht alle Seiten?

Ich möchte folgende Webseite komplett spiegeln:http://tinaztitiz.com

Ich verwende den folgenden wget-Befehl:

wget -m http://tinaztitiz.com

Die Website ist ein benutzerdefiniertes CMS und enthält viele Seiten mit URLs im folgenden Format:

http://tinaztitiz.com/yazi.php?id=943
http://tinaztitiz.com/yazi.php?id=762

Merkwürdigerweise ruft wget einige dieser Seiten ab, aber nicht alle. Ich frage mich, was der Grund dafür sein könnte.

Hinweis: Es gibt keine Einschränkung durch robots.txt.

Aktualisieren:

Beim Betrachten des Quellcodes der Website fiel mir auf, dass die Seiten, die von wget nicht erkannt und gecrawlt werden, eine gemeinsame Eigenschaft haben. Ihre Anker-URLs werden von der folgenden JavaScript-Funktion geschrieben:

function yazilar()
{
var ab = '</a><br class=\"hide\" />';
var aa = '<a class=' + '\"nav sub\" href=\"kategori.php?id=';
var ac = '';

var arr = new Array();
arr[0] = '12\">'+ac+' Belâgat';
arr[1] = '15\">'+ac+' Bilim ve Teknoloji';
//...
maxi = 14;
for(i=0;i<maxi;i++) {
    a = aa + arr[i] + ab;
    document.writeln(a);
    }
}

Es scheint also, dass wget dynamisch generierte Anker-Tags nicht erkennen kann.

Antwort1

Javascript wird vom Browser gerendert. wgettut genau das, was es tun soll, nämlich den Inhalt abrufen. Browser machen zunächst dasselbe. Sie erhalten den Inhalt genau so, wie Sie oben geschrieben haben. Aber dann rendert es den JavascriptTeil und erstellt die Links. wgetDas geht nicht. Also, nein, Sie können keine dynamisch generierten Links abrufen, indem Sie nur wget verwenden. Sie können etwas wie Folgendes versuchen:PhantomJSobwohl.

Antwort2

Wie bereits erwähnt, kann wget keine Seiten generieren, die clientseitigen JavaScript-Code verwenden. Wenn Sie die Grundlagen der Python-Programmierung kennen, empfehle ich die Verwendung der Python-BibliothekSchabrackezum Crawlen der Website, zusammen mitSelen, das einen externen Browser verwenden kann, um dynamische Seiten zu generieren. All dies können Sie mit einer winzigen Menge Python-Code tun. Siehe zum Beispiel Code Snippets Sammlung.

verwandte Informationen