páginas Normalmente que tienen un formulario de acceso se pueden descargar con¿Cómo descargar páginas que redirigen después del inicio de sesión?
wget --no-check-certificate --save-cookies cookies --keep-session-cookies \
--post-data="username=example&password=example" \
"https://example.com/index.php?title=Special:Userlogin&returntotitle="
wget --no-check-certificate --load-cookies=cookies \
--no-parent -r --level=2 -nc -E \
https://example.com/Special:Sitemap
Pero en el caso de los sitios DekiWiki, esto no funciona, si se requiere inicio de sesión.
El problema costuras que se describen en man wget
Nota: si Wget es redirigido después de la solicitud POST se ha completado, no enviará los datos POST a la URL redirigida. Esto se debe a que las URL que procesan POST a menudo responden con una redirección a una página normal, que no desea ni acepta POST. No es que este comportamiento sea óptimo; si no funciona, podría ser cambiado en el futuro.
Pregunta
se puede hacer esto usando Perl, por ejemplo, con quizás HTML::TreeBuilder 3
o HTML::TokeParser
o Mechanize
o cualquier otro módulo de Perl?
Muy interesante. ¿También es posible duplicar el sitio? En mi ejemplo, uso wget's '--no-parent -r --level = 2'. –
¿Quiere decir descargar recursivamente todas las páginas apuntadas desde la página original? No, curl tiene -r --level = 2 equivalentes, sin embargo, libcurl, una interfaz API, podría programarse fácilmente para analizar una página html y descargar todos los enlaces en esa página. Libcurl tiene enlaces para los siguientes idiomas (y más): C, C++, Java, Lisp, .NET, Pascal de objetos, Pascal, Perl, PHP, Python, Ruby, Visual Basic – Motes
@Motes, "-cookie-jar" necesita ser cambiado a "--cookie-jar", ¿verdad? – Sathish