最近發現一個網站www.unsplash.com ( 沒有廣告費哈,純粹覺得不錯 ),網頁做得很美觀,上面也都是一些免費的攝影照片,覺得很好看,就決定利用蹩腳的技能寫個爬蟲下載圖片。 先隨意感受一下這個網站: 接下來開始對網頁進行解析: 在該網頁檢查元素,選擇其中一張圖片查看它的代碼 可以看到,圖片 ...
最近發現一個網站www.unsplash.com ( 沒有廣告費哈,純粹覺得不錯 ),網頁做得很美觀,上面也都是一些免費的攝影照片,覺得很好看,就決定利用蹩腳的技能寫個爬蟲下載圖片。
先隨意感受一下這個網站:
接下來開始對網頁進行解析:
在該網頁檢查元素,選擇其中一張圖片查看它的代碼
可以看到,圖片 img 在一個 div 的 tag 裡面,而且 class = ”IEpfq“,不過那麼多內容,雖然有點亂,但其實看 src = ” “ 就行了。
但這隻是一張圖片的內容,得再看看其他的圖片是不是一樣。檢查一下發現都是這樣。這樣子就算解析完成了。可以開始寫代碼了
1 #!/usr/bin/env python 2 # _*_ coding utf-8 _*_ 3 from bs4 import BeautifulSoup 4 import requests 5 6 i = 0 7 url = 'https://unsplash.com/' 8 html = requests.get(url) 9 soup = BeautifulSoup(html.text, 'lxml') 10 11 img_class = soup.find_all('div', {"class": "IEpfq"}) # 找到div裡面有class = "IEpfq"的內容 12 13 for img_list in img_class: 14 imgs = img_list.find_all('img') # 接著往下找到 img 標簽 15 for img in imgs: 16 src = img['src'] # 以"src"為 key,找到 value 17 r = requests.get(src, stream=True) 18 image_name = 'unsplash_' + str(i) + '.jpg' # 圖片命名 19 i += 1 20 with open('./img/%s' % image_name, 'wb') as file: # 打開文件 21 for chunk in r.iter_content(chunk_size=1024): # 以chunk_size = 1024的長度進行遍歷 22 file.write(chunk) 23 print('Saved %s' % image_name)
運行結果:
Saved unsplash_0.jpg Saved unsplash_1.jpg ...... Saved unsplash_19.jpg Saved unsplash_20.jpg