使用Python爬蟲實現自動下載圖片
python爬蟲支援模組多、程式碼簡潔、開發效率高 ,是我們進行網路爬蟲可以選取的好工具。對於一個個的爬取下載,勢必會消耗我們大量的時間,使用Python爬蟲就可以解決這個問題,即可以實現自動下載。本文向大家介紹python爬蟲的實戰練習之進行自動下載圖片的爬取過程。
一、自動下載圖片流程
1、總結網址規律,以便根據網址訪問網頁;
2、根據網址規律,迴圈爬取並返回網頁;
3、利用正規表示式提取並返回圖片。
二、使用實現自動下載圖片步驟
1、匯入相關包
import requests import importlib import urllib import re import os import sys importlib.reload(sys)
2、定義網頁訪問函式
獲得方式:正常訪問此頁面,滑鼠右鍵檢查或F12-在Network處檢視自己的cookie,由於cookie很長且每個使用者的cookie不同,故程式碼中將cookie省略了,讀者可檢視自己瀏覽器的cookie,將其加入程式碼中。
def askURL(url): head = { "Accept": "image/webp,image/apng,image/*,*/*;q=0.8", "Accept-Language": "zh-CN,zh;q=0.9", "Connection": "keep-alive", "Cookie": " ", "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/ 71.0.3578.98 Safari/537.36" } s = quote(url, safe=string.printable) # 中文轉utf8字元,否則會報ascii錯 print(s) request = urllib.request.Request(s, headers=head) html = "" try: response = urllib.request.urlopen(request) html = response.read().decode("utf-8") print(html) except urllib.error.URLError as e: if hasattr(e, "code"): print(e.code) if hasattr(e, "reason"): print(e.reason) return html
3、提取圖片並返回
根據返回的html網頁可以看到,網頁中包含圖片的url共有四種型別,分別是objURL、middleURL、hoverURL和thumbURL,故利用正規表示式返回四種型別的連結併合並。
i = 1 def savePic(url): global i # html = askURL(url) pic_url = re.findall('"objURL":"(.*?)",', html, re.S) # re.S表示讓換行符包含在字元中 pic_url2 = re.findall('"middleURL":"(.*?)",', html, re.S) pic_url3 = re.findall('"hoverURL":"(.*?)",', html, re.S) pic_url4 = re.findall('"thumbURL":"(.*?)",', html, re.S) result = pic_url2 + pic_url + pic_url4 + pic_url3 for item in result: print("已下載" + str(i) + "張圖片") # 定義異常控制 try: pic = requests.get(item, timeout=5) except Exception: print("當前圖片無法下載") continue # 儲存圖片 string = 'D:/MyData/Python爬蟲/圖片/'+word+"/"+str(i)+".jpg" fp = open(string, 'wb') fp.write(pic.content) fp.close() i += 1
4、定義主函式
if __name__ == '__main__': # 主程式 word = input("請輸入想要下載的圖片:") # 根據搜尋的關鍵字判斷存放該類別的資料夾是否存在,不存在則建立 road = "D:/MyData/Python爬蟲/圖片下載器/" + word if not os.path.exists(road): os.mkdir(road) # 根據輸入的內容構建url列表,此處只訪問了四頁驗證效果 urls = [ 'https://image.baidu.com/search/index?tn=baiduimage&ps=1&ct=201326592&lm=-1&cl=2&nc=1&ie=utf-8&word=' + word '.format(str(i)) for i in range(0, 40, 10)] for url in urls: print(url) downloadPic(url) print("下載完成!")
以上就是使用Python爬蟲實現自動下載圖片的過程,大家可以嘗試練習一下哦~
如果大家想嘗試爬取資料,可以嘗試,免費測試提供1000個爬蟲專用ip地址,希望對大家有所幫助!
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4692/viewspace-2830987/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 如何用Python爬蟲實現百度圖片自動下載?Python爬蟲
- 京東商品圖片 自動下載 抓取 c# 爬蟲C#爬蟲
- Python爬蟲之煎蛋網圖片下載Python爬蟲
- Python爬蟲 搜尋並下載圖片Python爬蟲
- 爬蟲 Scrapy框架 爬取圖蟲圖片並下載爬蟲框架
- python爬蟲之圖片下載APP1.0Python爬蟲APP
- python 爬蟲 下載百度美女圖片Python爬蟲
- python自動下載圖片Python
- python爬蟲系列(4.5-使用urllib模組方式下載圖片)Python爬蟲
- python 爬蟲之requests爬取頁面圖片的url,並將圖片下載到本地Python爬蟲
- ReactPHP 爬蟲實戰:下載整個網站的圖片ReactPHP爬蟲網站
- 【python--爬蟲】千圖網高清背景圖片爬蟲Python爬蟲
- Python爬蟲實戰詳解:爬取圖片之家Python爬蟲
- 自學python網路爬蟲,從小白快速成長,分別實現靜態網頁爬取,下載meiztu中圖片;動態網頁爬取,下載burberry官網所有當季新品圖片。Python爬蟲網頁
- Python爬蟲遞迴呼叫爬取動漫美女圖片Python爬蟲遞迴
- Python 實用爬蟲-04-使用 BeautifulSoup 去水印下載 CSDN 部落格圖片Python爬蟲
- Python 爬蟲入門 (二) 使用Requests來爬取圖片Python爬蟲
- python爬蟲---網頁爬蟲,圖片爬蟲,文章爬蟲,Python爬蟲爬取新聞網站新聞Python爬蟲網頁網站
- 用雲函式快速實現圖片爬蟲函式爬蟲
- 教你如何快速實現一個圖片爬蟲爬蟲
- Python爬蟲—爬取某網站圖片Python爬蟲網站
- Python 萌新 - 實現 Markdown 圖片下載器Python
- 爬蟲第二彈:千圖網電商淘寶模板圖片下載爬蟲
- Python爬蟲之網頁圖片Python爬蟲網頁
- 實用爬蟲-03-爬取視訊教程課程名+連結+下載圖片爬蟲
- 小小圖片爬蟲爬蟲
- 堆糖網爬蟲(根據關鍵字下載圖片)爬蟲
- Python爬蟲入門【5】:27270圖片爬取Python爬蟲
- Python爬蟲學習(6): 爬取MM圖片Python爬蟲
- Python網路爬蟲2 - 爬取新浪微博使用者圖片Python爬蟲
- 圖靈樣書爬蟲 - Python 爬蟲實戰圖靈爬蟲Python
- 第二彈!python爬蟲批量下載高清大圖Python爬蟲
- Python爬蟲新手教程: 知乎文章圖片爬取器Python爬蟲
- Python爬蟲入門-爬取pexels高清圖片Python爬蟲
- Java爬蟲批量爬取圖片Java爬蟲
- 一個事件驅動的圖片爬蟲事件爬蟲
- Python3 大型網路爬蟲實戰 003 — scrapy 大型靜態圖片網站爬蟲專案實戰 — 實戰:爬取 169美女圖片網 高清圖片Python爬蟲網站
- 如何用python爬蟲下載小說?Python爬蟲