一些web站点在提供你想要的服务内容之前会给浏览器强行灌输许多cookie 。加上一个“Cookie:”头和正确的信息 , 这个信息可以从你的浏览器的cookie文件中获得 。
bash$ cookie=$( grep nytimes ~/.lynx_cookies awk "{printf("%s=%s;",$6,$7)}" )
为了从http://www.nytimes.com/下载资料 , 上面的脚本可以构建你所需要的cookies 。当然前提是你已经为使用这个浏览器的站点注册了 。w3m使用了一个稍微有点不同的cookie文件格式:
bash$ cookie=$( grep nytimes ~/.w3m/cookie awk "{printf("%s=%s;",$2,$3)}" )
可以用下面这个bash执行下载:
bash$ wget --header="Cookie: $cookie" http://www.nytimes.com/reuters/technology/tech-tech-supercomput.html
也可以使用curl工具:
bash$ curl -v -b $cookie -o supercomp.html http://www.nytimes.com/reuters/technology/tech-tech-supercomput.html
URLs列表
目前为止 , 我们下载的文件都是单个的文件或者镜像整个站点 , 也是存储整个网站目录 。但有时候我们想下载几个文件 , 当然 , 它的URL已经在web页中给出 , 而又不想将整个站点都存储下来 。一个简单的例子就是 , 我们只想将站点中排列好了的100个音乐文件的前面20个下载回来 。在这里“--accept”和“--reject”因为不是在文件扩展部分都不可以使用 。所以 , 我们使用“lynx -dump” 。
bash$ lynx -dump ftp://ftp.ssc.com/pub/lg/ grep "gz$" tail -10 awk "{print $2}" > urllist.txt
使用很多GNU文本处理工具都可以把来自lynx的输出过滤一下 。在上面这个例子里 , 我们将在“gz”中的URL的结尾析取出来并将最后10个文件存储下来 。一个很小的bash脚本命令可以自动下载文件中列出的所有URLs:
bash$ for x in $(cat urllist.txt)
> do
> wget $x
> done
我们已经成功的将Linux Gazette的最近十期下载下来 。
如何处理带宽问题
假如你对带宽不是很熟 , 而且你的文件下载因为你在web服务器的终端而非常慢的时候 , 下面这个技巧可以帮助你畅通无阻的传送文件 。它需要使用到curl和几个镜像web站点 , 在那里有目标文件的几个相同的备份 。例如 , 假设你想从下面三个站点下载Mandrake 8.0的ISO :
url1=http://ftp.eecs.umich.edu/pub/linux/mandrake/iso/Mandrake80-inst.iso
url2=http://ftp.rpmfind.net/linux/Mandrake/iso/Mandrake80-inst.iso
url3=http://ftp.wayne.edu/linux/mandrake/iso/Mandrake80-inst.iso
文件长度是677281792 , 使用curl的“--range” 选项同时分三部分下载 。
bash$ curl -r 0-199999999 -o mdk-iso.part1 $url1 &
bash$ curl -r 200000000-399999999 -o mdk-iso.part2 $url2 &
bash$ curl -r 400000000- -o mdk-iso.part3 $url3 &
分成了三个下载过程 , 不同的服务器传送ISO镜像文件的不同部分 。“-r”选项指定从目标文件中选取的字节范围 。完成后 , 再将三个部分合在一起——cat mdk-iso.part? > mdk-80.iso 。(在烧录到CD-R之前建议你检查md5散列)curl使用“--verbose”选项并在它自己的窗口中运行的话可以追踪每个传送过程 。
总结
【随心所欲下载—构造你自己的Linux网络蚂蚁】不要害怕使用非交互性方式来下载远程文件 。web设计者设法强迫我们在他们的站点上交互式的冲浪 , 但仍然有免费的工具帮助我们自动进行这个工作 , 省下我们不少麻烦哦 。
推荐阅读
- 百度地图怎么下载离线地图
- 微盘为什么下载不了了
- 初乳—仔猪免疫的第一步
- 有信下载应用没有得到分钟数怎么办
- 暴打神经猫下载 暴打神经猫在哪玩
- 有哪些含有寓意的班名?
- Moboplayer解码包下载和安装、离线安装
- M636之——外观功能篇
- Moboplayer怎么下载解码包
- 龙之谷2礼包哪里兑换
