使用 wget 从 url 下载文件

download files from a url using wget

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

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

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

但是不知道这样获取文件是否可行??

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

任何建议

url 看起来它指向的是包含文件的站点,而不是文件本身。要下载文件,您需要

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

这将下载 yourfile.txt

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

许多网站通过会话 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 中有一个与上面非常相似的示例。