使用需要身份验证的bash下载页面

时间:2015-08-24 13:32:29

标签: linux bash ubuntu

我知道之前已经多次询问过,但解决方案对我没有用。 我正在使用ubuntu 14 TLS,我想在外部设备上下载某个页面并将其另存为html文件。 问题:

  1. 要进入该页面,需要在登录页面上输入用户名和密码。据我所知,身份验证适用于JavaScript。

  2. 我要下载的页面就像数据库。要查看我要保存的信息,我必须点击"显示全部"该页面上的按钮也使用JavaScript。

  3. 我已经尝试了

    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);
    

    和想法?

1 个答案:

答案 0 :(得分:0)

为什么你的尝试可能不起作用:

您提到的登录脚本是应该在浏览器中运行的javascript代码,作为预先检查以显示要下载的文件。 由于您是从wget运行的,因此它不能从CDN下载jQuery源,执行不同的模块,打开所需的任何标志,最后让浏览器显示下载对话框。 在这种情况下,它应该是一个客户端验证,但从它的外观来看,但我们正在谈论一个摘录,所以我们与想知道和做出假设。

要遵循的一些任务可以指导您朝着正确的方向:

你最好的选择是安装一些让你看到发生了什么以及浏览器从何处下载数据的东西。

  • 如果使用Firefox,您可以使用Live HTTP Headers来查看您想要的实际文件链接,请注意,它非常冗长,但这也意味着它可以为您提供很多控制。
  • 如果是Chrome,您可能想尝试使用自己的一套工具,只需按F2并在网络标签上保持警惕。

下载链接可能有额外的参数,您可以从bash脚本调整这些参数,这些工具可以让您看到它们并采取相应的行动:)