爬取目標:http://desk.zol.com.cn/dongman/
效果:
1,壁紙保存到腳本運行目錄下的的image的子文件夾(并有合適的命名)內。
2.保存的圖片必須以對應標題名和分辨率來命名
3.圖片分辨率應該是可選分辨率中最高的。
使用庫如下

根據需求構造函數如下
1.獲取etree(對超時情況進行timeout的增加,保證任務順利進行)

2.獲取每套壁紙名稱,網址一級目錄,每套張數

3.獲取子目錄網址

4.獲取每張圖片的地址和分辨率(針對個別不統(tǒng)一的頁面進行條件判斷)

5,構造文件名以及文件夾名

6,創(chuàng)建文件夾(考慮目錄已存在的情況)

7,獲取圖片并保存(注意到png和jpg圖片格式不同,保存之前統(tǒng)一convert成RGB格式)

最后一步,關聯各部分函數得到主函數(部分循環(huán)嵌套了一下,偷個懶?(?ω?)?)

最終效果;


實際上總共爬取1.7G的文件竟用了2小時多,為充分利用寬帶資源,考慮使用多線程
使用thread模塊,將上面主函數改成def? imgPageOut(p),效果是爬取第p頁的圖片
用math.floor()解決余留頁

看一下效果


設置線程數25的情況下,充分利用寬帶,提速近10倍

爬取到的資源完全一致,效果不錯!