Bash - 下载文件,如果需要,请登录

时间:2013-11-21 08:34:53

标签: bash curl download wget lynx

我正在使用BASH,我需要下载TXT文件,该文件是在服务器端按请求生成的。这意味着URL类似于:

http://1.1.1.1:4884/page.aspx?fileID=123456&lang=en&Export=1

Export=1被.NET应用程序捕获,我提供了一个基于fileID的TXT文件。
如果我还没有登录,我会被重定向到URL中包含?ReturnUrl的登录表单,并在登录时将我重定向回我请求的页面。

如何使用BASH cURL/wget/lynx成功下载此文件。它必须是非交互式的。

我尝试使用--cookie选项进行curl和wget以及lynx自动化(cmd-log)。 Lynx效果最好,但出于某种原因,文件下载提示无法自动化。

请帮忙。如果需要任何其他信息,我会提供。

1 个答案:

答案 0 :(得分:0)

  1. 使用curl。
  2. 代码遵循方法:
    • 尝试下载文件
    • 如果失败(重定向到登录页面),请登录并开始
  3. 您始终需要使用curl的-c选项在curl调用之间存储Cookie
  4. 要使用curl登录,您需要知道服务器上的表单,这意味着:您通常键入登录名和密码的字段名称。
  5. 将数据发送到服务器使用curl的-d选项。要将cookie发送到服务器,请使用-b(或--cookie)。