Chinaunix
标题:
多进程批量下载ubuntu官方壁纸
[打印本页]
作者:
paktc
时间:
2010-08-10 13:28
标题:
多进程批量下载ubuntu官方壁纸
本帖最后由 paktc 于 2010-08-10 13:32 编辑
批量下载ubuntu官方壁纸-自然系列
我是在windows下写的,需要借助wget命令。 不过我想移到linux改一下应该也OK。
分析地址的时候设置了一个递增数 % 3 ,如果=0就当前下载 ,其余的另开进程下载,
当前下载可以达到缓冲不炸窗口的作用。 3也就是个关键数字了。
foreach $number (51..63) {
system("wget --output-document link.html http://art.gnome.org/backgrounds/nature?page=$number");
open READ,"link.html";
@lines=<READ>;
close READ;
$rcd="#";
$http="http://ftp.gnome.org/pub/GNOME/teams/art.gnome.org/backgrounds/";
$i=0;
foreach (@lines) {
if (s#.*<option value="/backgrounds/nature/\d*/##i) {
s#">##;
@tmp=split("_",$_);
next if ($rcd eq $tmp[0]);
$rcd=$tmp[0];
$i+=1; $pan=$i % 3;
if ($pan == 0) {
system("wget -nc $http$_ ");
} else {
system("start /min wget -nc $http$_");
}
}
}
}
print "OVER";
<STDIN>;
复制代码
还有个细节是我记录了名字的某个部分
因为一个页面中有同张图片的不同分辨率的链接,比如
“NATURE-BalconVert_1024x768.jpg"
“NATURE-BalconVert_1900x1250.jpg"
避免同一张图,做了遇到同样标题调过的处理
作者:
paktc
时间:
2010-08-10 14:06
我跑到ubuntu下面来试了,好像下载速度本来就很慢阿……
改了代码
#!/usr/bin/perl
foreach $number (51..63) {
system("wget --output-document link.html http://art.gnome.org/backgrounds/nature?page=$number");
open READ,"link.html";
@lines=<READ>;
close READ;
$rcd="#";
$http="http://ftp.gnome.org/pub/GNOME/teams/art.gnome.org/backgrounds/";
$i=0;
foreach (@lines) {
if (s#.*<option value="/backgrounds/nature/\d*/##i) {
s#">##;
@tmp=split("_",$_);
next if ($tmp[0]=~/$rcd.*/);
$rcd=$tmp[0];
$i+=1; $pan=$i % 3;
if ($pan == 0) {
system("wget -nc $http$_ ");
} else {
system("gnome-terminal --zoom=0.1 -e \"wget -nc $http$_\"");
}
}
}
}
print "OVER";
<STDIN>;
复制代码
作者:
wfnh
时间:
2010-08-10 14:47
额···这个不算多线程吧···
作者:
paktc
时间:
2010-08-10 15:13
本帖最后由 paktc 于 2010-08-10 15:15 编辑
回复
3#
wfnh
哈哈,所以我很明确的写了标题:多进程
就是怕有人说我…… 啊 。线程这个词就高了
主要是壁纸真的不错,推荐~ :wink:
作者:
ttcn_cu
时间:
2010-08-10 16:05
只用perl抓过学校BBS的plmm板块的图片,
自然类。。。
最好用perl自己的模块做吧,看老大的这个回复
http://bbs.chinaunix.net/viewthr ... ;page=1#pid10017536
作者:
paktc
时间:
2010-08-10 17:23
回复
5#
ttcn_cu
原来perl自己有下载函数啊,我只学了基本操作,果然井底之蛙啊。 下班后探索探索
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2