Quiero reflejar el siguiente sitio web por completo:http://tinaztitiz.com
Utilizo el siguiente comando wget:
wget -m http://tinaztitiz.com
El sitio web es un CMS personalizado y contiene muchas páginas que tienen la siguiente forma de URL:
http://tinaztitiz.com/yazi.php?id=943
http://tinaztitiz.com/yazi.php?id=762
Curiosamente, wget obtiene algunas de estas páginas pero no todas. Me pregunto cuál podría ser la razón de esto.
Nota: No hay restricciones debido al archivo robots.txt.
Actualizar:
Al observar el código fuente del sitio web, noté que las páginas que wget no detecta ni rastrea tienen una propiedad común. Sus URL de anclaje están escritas mediante la siguiente función de JavaScript:
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);
}
}
Entonces, parece que wget no puede detectar etiquetas de anclaje que se generan dinámicamente.
Respuesta1
Javascript lo procesa el navegador. wget
hace exactamente lo que se supone que debe hacer, recuperar el contenido. Los navegadores hacen lo mismo inicialmente. Obtienen el contenido exactamente como lo publicaste anteriormente. Pero luego renderiza la Javascript
pieza y construye los enlaces. wget
No puedo hacer eso. Entonces, no, no puede obtener enlaces que se generen dinámicamente usando solo wget. Puedes probar algo comofantasmajsaunque.
Respuesta2
Como ya se indicó, wget no puede generar páginas que utilicen código JavaScript del lado del cliente. Si conoce los conceptos básicos de la programación en Python, le recomendaría utilizar la biblioteca de Python.raspadopara rastrear el sitio web, junto conSelenio, que es capaz de utilizar un navegador externo para generar páginas dinámicas. Puedes hacer todo esto con una pequeña cantidad de código Python. ver por ejemplo Colección de fragmentos de código.