分页: 1 / 1

怎么用wget下载被php隐藏的文件??

发表于 : 2008-04-29 2:34
robinmu
如这个的文件http://forum.ubuntu.org.cn/download.php?id=30693
这样的网址用wget该怎么下载呀??

发表于 : 2008-04-29 9:21
thword
目前wget似乎做不到。

几条解决建议:
1、直接用图形界面的下载工具下载,或者浏览器。
如果一定要在命令行下,则
2、用wget的 -O 选项,手动指定输出的文件名。
3、用w3m或lynx下载
4、编写一个脚本,获取http头,分析取得真实的文件名,然后应用在wget的 -O 选项里

发表于 : 2008-04-29 10:09
thword

代码: 全选

#! /bin/bash
tmp=/tmp/wgettmp
wget -S --spider $1 -o $tmp
filename=`grep Content-Type $tmp | sed 's/.*\=//;s/\"//g'`
wget $1 -O $filename
rm $tmp
写了个脚本,用前面说的第4种思路
谁再改改,争取把临时文件去掉
sed那句也应该可以写得更简单点

发表于 : 2008-04-29 14:17
robinmu
见下:::

发表于 : 2008-04-29 14:17
robinmu
楼上的,我用了你的脚本但是结果是:
[myname@localhost ~]$ ./wget_test.sh download.php?id=30693
weather1day.tar.gz

wget:选项需要一个参数 -- O
用法: wget [选项]... [URL]...

请尝试使用“wget --help”查看更多的选项。

===
我没有下到需要的文件。
奇怪的是如果我在命令行下直接输入:
wget download.php?id=30693 -O weather1day.tar.gz
却可以正常下载,但是用脚本就是不行,这是怎么回事呢??

发表于 : 2008-04-29 14:45
thword
这个脚本我自己测试过,是可以下载的

你可以试着把临时文件的地址改一下,比如改成

代码: 全选

tmp=~/wgettmp
当然,也有可能是复制的时候出了些问题,再比对一下看看

或用这个试试

发表于 : 2008-04-29 16:27
robinmu
谢谢,可以了!!!
该死的IE。

发表于 : 2008-04-29 18:56
millenniumdark
curl就不用麻烦。认http头的。