使用wget从URL下载文件

时间:2015-06-26 00:04:05

标签: linux curl wget

我需要从网站下载一些文件,网站内容有些图表,并且可以选择将图表数据下载为CSV文件。 我尝试使用wget

Class RollableShape
    Inherits Shape
    Implements IRollable
End Class

但只有代码才会下载网站的登录页面,我需要从图表中下载附件。

但我不知道是否有可能以这种方式获取文件?

我尝试使用curl但是得到了相同的结果

任何建议

2 个答案:

答案 0 :(得分:1)

许多网站通过会话Cookie跟踪您是否登录。如果您没有登录(因为您尚未发送有效的会话cookie),您将被重定向到登录页面(即使您提供了密码)。因此,您可能必须运行wget才能登录,然后再次运行它以实际检索文件。请注意,单独使用--save-cookies可能还不够,您可能需要添加--keep-session-cookies

wget --save-cookies cookies.txt --keep-session-cookies --post-data 'user=foo&password=bar' https://websiteyyyyyyyy/loginpage
wget --load-cookies cookies.txt https://websiteyyyyyyyy/graph_xport.php?local_graph_id=1234

有关-post-file选项的部分Wget documentation中有一个与上述非常类似的示例。

答案 1 :(得分:0)

该网址看起来像是指向包含该文件的网站,而不是文件本身。要下载该文件,您需要类似

的内容

wget http://www.examplesite.com/subpage/yourfile.txt

将下载yourfile.txt

但是,如果这些图表是通过服务器端脚本动态创建的,例如基于用户输入的图表生成,则指向具有该脚本的页面将不会运行该脚本,这反过来又无法创建文件或发起文件请求。您必须使用指向文件位置的URL,并且在发出请求之前该文件必须已存在。