我知道之前已经多次询问过,但解决方案对我没有用。 我正在使用ubuntu 14 TLS,我想在外部设备上下载某个页面并将其另存为html文件。 问题:
要进入该页面,需要在登录页面上输入用户名和密码。据我所知,身份验证适用于JavaScript。
我要下载的页面就像数据库。要查看我要保存的信息,我必须点击"显示全部"该页面上的按钮也使用JavaScript。
我已经尝试了
wget --secure-protocol=TLSv1 --user=op --password=pw --save-cookies cookies.txt --no-check-certificate https://10.84.163.146/login/login
wget --load-cookies cookies.txt -p https://10.84.163.146/analyses.
但它不起作用。
我也试过
wget --cookies=on --save-cookies=cookies.txt --keep-session-cookies --no-check-certificate --post-data 'user=op&passwort=pw' https://10.84.163.146/
wget --cookies=on --load-cookies=cookies.txt --keep-session-cookies --no-check-certificate https://10.84.163.146/analyses
它下载一个文件,但它始终是登录页面。 cookie.txt包含以下信息:
# HTTP cookie file.
# Generated by Wget on 2015-08-24 15:29:10.
# Edit at your own risk.
10.84.163.146 FALSE / TRUE 0 BALANCEID balancer.thin1
10.84.163.146 FALSE / TRUE 0 _session_id dcfd63dad96cede4c3e5927335cbf411
这是登录脚本:
// Make sure we have cookies enabled for this site
var tmpcookie = new Date();
chkcookie = (tmpcookie.getTime() + '');
document.cookie = "chkcookie=" + chkcookie + "; path=/";
if (document.cookie.indexOf(chkcookie,0) < 0) {
alert("Cookies are required for this site.\n" +
"Please unblock cookies in your browser setting.");
}
(function($){
$(document).ready(function(){
$('#login-container').find('input.form-control').blur(function(e){
$('#login-container').find('.form-group.auth').removeClass('focus');
}).focus(function(e){
$(this).parents('.form-group:first').addClass('focus');
});
});
})(jQuery);
和想法?
答案 0 :(得分:0)
您提到的登录脚本是应该在浏览器中运行的javascript代码,作为预先检查以显示要下载的文件。 由于您是从wget运行的,因此它不能从CDN下载jQuery源,执行不同的模块,打开所需的任何标志,最后让浏览器显示下载对话框。 在这种情况下,它应该是一个客户端验证,但从它的外观来看,但我们正在谈论一个摘录,所以我们与想知道和做出假设。
你最好的选择是安装一些让你看到发生了什么以及浏览器从何处下载数据的东西。
下载链接可能有额外的参数,您可以从bash脚本调整这些参数,这些工具可以让您看到它们并采取相应的行动:)