爬取目标:http://desk.zol.com.cn/dongman/
效果:
1,壁纸保存到脚本运行目录下的的image的子文件夹(并有合适的命名)内。
2.保存的图片必须以对应标题名和分辨率来命名
3.图片分辨率应该是可选分辨率中最高的。
使用库如下
根据需求构造函数如下
1.获取etree(对超时情况进行timeout的增加,保证任务顺利进行)
2.获取每套壁纸名称,网址一级目录,每套张数
3.获取子目录网址
4.获取每张图片的地址和分辨率(针对个别不统一的页面进行条件判断)
5,构造文件名以及文件夹名
6,创建文件夹(考虑目录已存在的情况)
7,获取图片并保存(注意到png和jpg图片格式不同,保存之前统一convert成RGB格式)
最后一步,关联各部分函数得到主函数(部分循环嵌套了一下,偷个懒♪(・ω・)ノ)
最终效果;
实际上总共爬取1.7G的文件竟用了2小时多,为充分利用宽带资源,考虑使用多线程
使用thread模块,将上面主函数改成def imgPageOut(p),效果是爬取第p页的图片
用math.floor()解决余留页
看一下效果
设置线程数25的情况下,充分利用宽带,提速近10倍
爬取到的资源完全一致,效果不错!