【发布时间】:2015-11-17 22:55:46
【问题描述】:
我知道这已经被问过好几次了,但解决方案对我不起作用。 我正在使用 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);
还有什么想法?
【问题讨论】:
-
与 --post-data 类似的命令对我有用。 wget --save-cookies cookies.txt --keep-session-cookies --no-check-certificate --post-data 'user=op&passwort=pw' 10.84.163.146
-
刚试过,对我不起作用。
-
javascript 是做什么的?了解应用程序的运行方式对于解决方案至关重要。例如,如果 Javascript 仅用于执行 XHR 以检索数据,则您应该简单地获取该 URL。如果它与后端进行某种握手,您将需要知道这意味着什么......等等。
-
@GerardvanHelden 在上面的帖子中添加了脚本
-
如果该 javascript 在客户端执行,那么 wget 将无法工作。 wget 不执行 javascript。