Python3爬取1024圖片
分析
列表頁面
首先進入1024的導航網站,隨便點擊一個地址進入選擇圖片區或者在網站地址後面添加,這就是1024網站的圖片區,這個爬蟲就是主要抓取這個區域的所有圖片,使用瀏覽器debug分析一下這個頁面發現基本都是列表頁,格式如下:
在地址欄後面拼1、2、3等於就是訪問圖片區第一頁、第二頁、第三頁的列表頁。根據這些列表頁就可以爬出具體的每一個圖片頁的地址,類似上圖的地址: 在地址的前面拼接上主站地址就是具體的圖片頁了。所以根據以上的分析:通過循環地址欄找到不同的列表頁在根據列表頁找到具體的圖片頁
地址欄->圖片列表->圖片頁地址
獲取列表頁圖片地址代碼如下:
在這個地址後面拼接1到N就是不同的列表頁
圖片頁面
利用瀏覽器debug一下頁面,圖片基本上都是外鏈地址,以http或者https開頭以jpg、png、gif結尾,寫個正則表達式匹配這些地址,然後交給程序下載就OK了。
頁面代碼如下:
在下載過程中遇到了幾個問題,就是有的頁面會報403禁止訪問等,應該是網站加了一些防止爬蟲的手段,網上找了下加上header參數來模擬瀏覽器訪問就解決了;
下載單個頁面代碼如下:
批量爬取
批量爬取有兩個工作要做,第一for循環目標內的所有列表頁,第二為了避免重複爬取,需要給每個頁面建立唯一的文件夾,下次爬取的時候如果存在直接跳過。最後在理一下所有的爬取步驟:
循環地址欄->找出圖片頁列表->圖片頁分析找出圖片地址->為圖片頁建立唯一的文件夾->開始下載頁面圖片
完整的代碼如下:
最後的爬取結果:
源代碼地址:python-crawler
具體地址和源代碼在一起
其它
關於python2和python3的爭論,網站爭論比較大python3不兼容pyhton2,很多第三方的類庫暫時還沒有支持python3等等,但是對於我們新手來說,肯定是往前看果斷python3.
代碼比較冗餘幾個地方還沒有寫好,還在慢慢學習中,目前只是搞的可以跑起來。還有幾個問題沒有解決,下載一段時間後會莫名其妙的斷掉目前還么找到原因,後期看是否可以加上多線程來爬取可能會快一點,大家有什麼更好的建議也可以提出來。
文章
申明
作者:純潔的微笑
源自:http://www.cnblogs.com/ityouknow/p/6013074.html
聲明:文章著作權歸作者所有,如有侵權,請聯繫小編刪除


TAG:python |