在wash \ curl中使用代理列表和bash脚本中的多个线程

时间:2013-08-15 06:30:49

标签: curl wget

我想要做的是在Linux上制作一个bash脚本,脚本的目标是获取一个url列表并下载它们。所以我写了一个脚本及其作品,但我的问题是所有的网址都来自同一个网站所以我在每个网址后睡了5分钟,这需要花费很多时间所以只是想使用代理列表所以我制作了一个脚本,下载代理ip到代理列表,但现在我想要了解什么是在这种情况下工作的最佳方式,我想创建一个多线程并使用代理列表下载,但如果它可以跳过代理用它下载(我下载时已经检查了代理列表),如果已下载文件,则跳过该文件。

非常感谢您的帮助和建议。

1 个答案:

答案 0 :(得分:0)

这可以在我的Mac上运行 将它们放在一个列表中,我们称之为list.txt,它将具有名称和URL mydoc.pdf http://www.domesite/xyz/xyzdoc.pdf

cat list.txt | while read name url
do
curl $url > $name &
echo $! >> active.list.tmp
done


while [ $(ps -ao pid | grep -c -f  active.list.tmp) -ne 0 ]
do
sleep 1
done

echo done
rm active.list.tmp