python爬蟲之圖片下載APP1.0
今天給大家來個好玩一點的,運用python爬取圖片到本地,網站為https://www.pexels.com/
這個網站為外文網,所以搜索圖片要用英語,今天要做的就是在python中進行搜索和下載圖片,做一個網頁版的APP。直接上代碼
from bs4 import BeautifulSoupimport requestsheaders ={ "accept":"text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8", "Cookie":"__cfduid=dcb472bad94316522ad55151de6879acc1479632720; locale=en; _ga=GA1.2.1575445427.1479632759; _gat=1; _hjIncludedInSample=1", "User-Agent":"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36"}url_path = "https://www.pexels.com/search/"content= input("請輸入你要下載的圖片:")url = url_path + content + "/"wb_data = requests.get(url,headers=headers)soup = BeautifulSoup(wb_data.text,"lxml")imgs = soup.select("a > img")list = []for img in imgs: photo = img.get("src") list.append(photo)path = "C://Users/Administrator/Desktop/photo/"i = 1for item in list: if item==None: pass elif "?" in item: data = requests.get(item,headers=headers) fp = open(path+content+str(i)+".jpeg","wb") fp.write(data.content) fp.close i = i+1 else: data = requests.get(item, headers=headers) fp = open(path+item[-10:],"wb") fp.write(data.content) fp.close()
分析代碼
1我首先網站上分別搜索snow和girl,網站分別為:https://www.pexels.com/search/snow/ https://www.pexels.com/search/girl/
所以我利用input函數進行輸入,然後自己構建url。
2解析和找到圖片的url放到list中,這部分就不多講了。3之前用urlretrieve來下載一直報錯,可能是外文網的原因,所以我把取到的圖片的url再request一次,並加上了headers。4為什麼要用判斷了?因為這個網站我爬取出現了None,我把它pass掉,其它有jpeg格式的,有png格式的,所以要分別下載。作者:羅羅攀 Python愛好者社區專欄作者,請勿轉載,謝謝。
簡書主頁:羅羅攀 - 簡書博客專欄:羅羅攀的博客配套視頻教程:Python3爬蟲三大案例實戰分享:貓眼電影、今日頭條街拍美圖、淘寶美食 Python3爬蟲三大案例實戰分享公眾號:Python愛好者社區(微信ID:python_shequ),關注,查看更多連載內容。
推薦閱讀:
※Python3如何將圖片保存到本地?
※自學python3的爬蟲,但是網上普遍是python2的書,想問下有沒有好的爬蟲的python3書?
※爬取的數據怎麼保存為圖片?