初見爬蟲--第一次練習

爬取目標: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倍


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

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,119評論 25 708
  • 用兩張圖告訴你,為什么你的 App 會卡頓? - Android - 掘金 Cover 有什么料? 從這篇文章中你...
    hw1212閱讀 14,030評論 2 59
  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴謹 對...
    cosWriter閱讀 11,668評論 1 32
  • 1.ios高性能編程 (1).內層 最小的內層平均值和峰值(2).耗電量 高效的算法和數據結構(3).初始化時...
    歐辰_OSR閱讀 30,260評論 8 265
  • 春日的海棠在我還未記下之時就以衰敗,其速度是如此之快,腦袋里只剩下初春時滿樹的花苞粉嫩之極,那種粉不僅僅是妖媚更像...
    愛上魚的土豆閱讀 222評論 0 0

友情鏈接更多精彩內容