所以我想从rapidshare下载多个文件。这就是我现在所拥有的。我通过跑步创造了一个饼干-
wget \
--save-cookies ~/.cookies/rapidshare \
--post-data "login=USERNAME&password=PASSWORD" \
--no-check-certificate \
-O - \
https://ssl.rapidshare.com/cgi-bin/premiumzone.cgi \
> /dev/null现在我有了一个shell脚本,它看起来像这样-
#!/bin/bash
wget -c --load-cookies ~/.cookies/rapidshare http://rapidshare.com/files/219920856/file1.rar
wget -c --load-cookies ~/.cookies/rapidshare http://rapidshare.com/files/393839302/file2.rar
wget -c --load-cookies ~/.cookies/rapidshare http://rapidshare.com/files/398293204/file3.rar
....我想要两件事-
谢谢!
发布于 2009-04-24 16:20:20
当您想要并行作业时,请考虑make。
#!/usr/bin/make -f
login:
wget -qO/dev/null \
--save-cookies ~/.cookies/rapidshare \
--post-data "login=USERNAME&password=PASSWORD" \
--no-check-certificate \
https://ssl.rapidshare.com/cgi-bin/premiumzone.cgi
$(MAKEFILES):
%: login
wget -ca$(addsuffix .log,$(notdir $@)) \
--load-cookies ~/.cookies/rapidshare $@
@echo "Downloaded $@ (log in $(addsuffix .log,$(notdir $@)))"将其保存为rsget在$PATH中的某个位置(确保使用制表符而不是缩进空格),给它chmod +x,然后运行
rsget -kj8 \
http://rapidshare.com/files/219920856/file1.rar \
http://rapidshare.com/files/393839302/file2.rar \
http://rapidshare.com/files/398293204/file3.rar \
...这将登录,然后wget每个目标。-j8告诉make并行运行多达8个作业,-k的意思是“即使目标返回失败也继续运行”。
编辑
用GNU 3.79和3.81进行测试。
发布于 2009-04-24 11:58:52
尝尝这个。我认为它应该做你想做的事:
#! /bin/bash
MAX_CONCURRENT=8
URL_BASE="http://rapidshare.com/files/"
cookie_file=~/.cookies/rapidshare
# do your login thing here...
[ -n "$1" -a -f "$1" ] || { echo "please provide a file containing the stuff to download"; exit 1; }
inputfile=$1
count=0
while read x; do
if [ $count -ge $MAX_CONCURRENT ]; then
count=0
wait
fi
{ wget -c --load-cookies "$cookie_file" "${URL_BASE}$x" && echo "Downloaded $x"; } &
count=$((count + 1))
done < $inputfilehttps://stackoverflow.com/questions/785494
复制相似问题