【一、項目背景】
在素材網想找到合適圖片需要一頁一頁往下翻,現在學會python就可以用程序把所有圖片保存下來,慢慢挑選合適的圖片。
【二、項目目標】
1、根據給定的網址獲取網頁源代碼。
2、利用正則表達式把源代碼中的圖片地址過濾出來。
3、過濾出來的圖片地址下載素材圖片。
【三、涉及的庫和網站】
1、網址如下:
https://www.51miz.com/
2、涉及的庫:requests、lxml
【四、項目分析】
首先需要解決如何對下一頁的網址進行請求的問題。可以點擊下一頁的按鈕,觀察到網站的變化分別如下所示:
https://www.51miz.com/so-sucai/1789243.html
https://www.51miz.com/so-sucai/1789243/p_2/
https://www.51miz.com/so-sucai/1789243/p_3/
我們可以發現圖片頁數是1789243/p{},p{}花括號數字表示圖片哪一頁。
【五、項目實施】
1、打開覓知網,在搜索中輸入你想要的圖片素材(以鼠年素材圖片為例)。
2、根據上一步對網址的分析,首先我們定義一個類叫做ImageSpider,類里面定義初始化函數、發送請求獲取響應數據函數、解析函數、主函數。首先初始化函數,准備url地址和headers,代碼如下圖所示。
3、發送請求獲取響應數據函數。
4、解析數據,使用xpath獲取二級頁面鏈接,最后把圖片存儲在文件夾中。使用谷歌瀏覽器選擇開發者工具或直接按F12,發現我們需要的圖片src是在img標簽下的,於是用Python的requests提取該組件。
5、主函數,代碼如下圖所示。
【六、效果展示】
1、運行程序,在控制台輸入你要爬取的頁數,如下圖所示。
2、在本地可以看到效果圖,如下圖所示。
【七、總結】
1、不建議抓取太多數據,容易對服務器造成負載,淺嘗輒止即可。
2、希望通過這個項目,能夠幫助大家下載到素材圖片。
3、本文基於Python網絡爬蟲,利用爬蟲庫,實現素材圖片的獲取。實現的時候,總會有各種各樣的問題,切勿眼高手低,勤動手,才可以理解的更加深刻。
4、需要本文源碼的小伙伴,后台回復“素材圖片”四個字,即可獲取。
看完本文有收獲?請轉發分享給更多的人
IT共享之家
入群請在微信后台回復【入群】
想學習更多Python網絡爬蟲與數據挖掘知識,可前往專業網站:http://pdcfighting.com/