python爬蟲之圖片下載APP1.0

今天給大家來個好玩一點的,運用python爬取圖片到本地,網站為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,網站分別為:pexels.com/search/snow/ 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書?
爬取的數據怎麼保存為圖片?

TAG:Python | python爬虫 | Python教程 |