前段時間想批量下載一些文件,但是在網上找了一遍發現基本沒有人寫過這個東西,雖然迅雷可以設置批量下載的規則,但是比較簡單,而且只能最多生成999個任務。最後終於在CSDN上找到了一篇文章是利用C語言和迅雷實現了資源的批量下載,於是修改了一下源碼,解決了我的問題。
我的目的是想批量下載幾千個文件,文件地址是從http://URL/0001.zip一直到http://URL/9999.zip,於是借鑒了那篇文章中的思路,自己寫了一個。其實我這個問題比那個作者的問題更簡單,因為他需要設置3個變量,而我只需要1個。主要方法就是利用C語言向文件中批量寫入字符串,然後打開後再配合迅雷的批量下載。
最後我寫的源碼如下:
/*
* Powered by 90blog.org
*/
#include <stdio.h>
void trans(char *c,int i)
{
if(i>=0 && i<10)
{
sprintf(c,"000%d",i);
}
else if(i<100)
{
sprintf(c,"00%d",i);
}
else if(i<1000)
{
sprintf(c,"0%d",i);
}
else
{
sprintf(c,"%d",i);
}
}
int main(int argc, char* argv[])
{
char buff[100];
char c[5]="0001";
FILE* fp;
int i=1;
int Max=9999;
fp=fopen("download.htm","w");
fputs("<html>\n",fp);
for (i = 1; i <= Max; i++)
{
trans(c,i);
sprintf(buff,"<p><a href=\"http://URL/%s.zip/\">%s</a></p>\n", c,c);
fputs(buff,fp);
puts(buff);
}
fputs("</html>",fp);
puts("write ok");
fclose(fp);
return 0;
}
運行後會直接生成一個HTML文件,打開後即可右鍵用迅雷下載全部鏈接。直接增加幾千個任務,迅雷還好沒卡死,QQ旋風直接無響應了,從這點來看迅雷在這方面還是比QQ旋風強大一些的。
利用這種方法可以直接批量下載資源,不過貌似Linux下可以直接使用命令把地址批量寫入文件然後再批量下載,不過我不會,所以只能用這種方法了。
摘自 90後博客