成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

20行Python代碼批量抓取免費高清圖片!

開發 后端
如何將網站中的圖片存儲到本地呢(例如比較關心跟數據相關的素材)?如果做到了,就可以在沒有網絡的情況下,隨心所欲的選擇精美圖片制作PPT,隨時隨地的查看自己的圖片庫。而本文所要跟大家分享的就是這個問題的解決方案。

相信在你的工作中可能會經常用到PPT吧,你在PPT制作過程中有沒有這樣的困惑,就是可以到哪里找到既高清又無版權爭議的圖片素材呢?這里強烈推薦ColorHub,這是一個允許個人和商業用途的免費圖片網站,真的很贊!從她的主頁界面來看,也許你就會愛上她。

那么,如何將網站中的圖片存儲到本地呢(例如比較關心跟數據相關的素材)?如果做到了,就可以在沒有網絡的情況下,隨心所欲的選擇精美圖片制作PPT,隨時隨地的查看自己的圖片庫。而本文所要跟大家分享的就是這個問題的解決方案。

爬蟲思路

我們知道,對于圖片網站的抓取,往往需要經過三層網頁鏈接,為了能夠直觀地理解這三層鏈接,可以查看下圖:

頂層頁:是指通過網站主頁的搜索欄,搜索出感興趣的圖片方向,便進入到的圖片列表頁,它的樣子是這樣的:

次層頁:是指點擊圖片列表頁中的某張圖片,轉而對應到的圖片詳情頁,它的樣子是這樣的:

目標頁:最后就是為了抓取圖片詳情頁中的那張高清圖片,而這張圖片在網頁源代碼中就是一個圖片鏈接,它的樣子是這樣的:

所以,爬蟲抓取圖片的最終目的就是找到高清圖片所對應的鏈接。接下來將通過代碼的介紹,呈現三層鏈接的尋找和請求過程。 

  1.  1# 導入第三方包  
  2.  2import requests  
  3.  3from bs4 import BeautifulSoup  
  4.  4import random  
  5.  5import time  
  6.  6from fake_useragent import UserAgent  
  7.  7  
  8.  8# 通過循環實現多頁圖片的抓取  
  9.  9for page in range(1,11):  
  10. 10    # 生成頂層圖片列表頁的鏈接  
  11. 11    fst_url = r https://colorhub.me/search?tag=data&page={} .format(page)     
  12. 12    # 生成UA,用于爬蟲請求頭的設置  
  13. 13    UA = UserAgent()  
  14. 14    # 向頂層鏈接發送請求  
  15. 15    fst_response = requests.get(fst_url, headers = { User-Agent :UA.random})     
  16. 16    # 解析頂層鏈接的源代碼  
  17. 17    fst_soup = BeautifulSoup(fst_response.text)  
  18. 18    # 根據HTML的標記規則,返回次層圖片詳情頁的鏈接和圖片名稱  
  19. 19    sec_urls = [i.find( a )[ href ] for i in fst_soup.findAll(name =  div , attrs = { class : card })]  
  20. 20    pic_names = [i.find( a )[ title ] for i in fst_soup.findAll(name =  div , attrs = { class : card })]  
  21. 21    # 對每一個次層鏈接做循環  
  22. 22    for sec_url,pic_name in zip(sec_urls,pic_names):  
  23. 23        # 生成UA,用于爬蟲請求頭的設置  
  24. 24        UA = UserAgent()  
  25. 25        ua = UA.random  
  26. 26        # 向次層鏈接發送請求  
  27. 27        sec_response = requests.get(sec_url, headers = { User-Agent :ua})      
  28. 28        # 解析次層鏈接的源代碼  
  29. 29        sec_soup = BeautifulSoup(sec_response.text)  
  30. 30        # 根據HTML的標記規則,返回圖片鏈接  
  31. 31        pic_url =  https:  + sec_soup.find( img ,{ class : card-img-top })[ src ]  
  32. 32        # 對圖片鏈接發送請求  
  33. 33        pic_response = requests.get(pic_url, headers = { User-Agent :ua})  
  34. 34        # 將二進制的圖片數據寫入到本地(即存儲圖片到本地)         
  35. 35        with open(pic_name+ .jpg , mode =  wb ) as fn:  
  36. 36            fn.write(pic_response.content)       
  37. 37        # 生成隨機秒數,用于也沒的停留  
  38. 38        seconds = random.uniform(1,3)  
  39. 39        time.sleep(seconds) 

不難發現,代碼的核心部分就16行,還是很簡單的吧。還不趕快去測試一下這里的代碼哦(如果你對某個方面感興趣,如商務、建筑、植物等,通過搜索,找到頂層頁鏈接,替換代碼中的fst_url值即可)。

在運行完如上代碼后,將會抓取ColorHub網站中的10頁圖片,一共包含325張高清圖片,展示如下:

 

責任編輯:龐桂玉 來源: 機器學習算法與Python學習
相關推薦

2020-06-18 15:53:06

Python代碼摳圖

2022-03-26 22:28:06

加密通信Python

2010-03-04 11:22:59

Python抓取網頁圖

2024-03-20 09:31:00

圖片懶加載性能優化React

2022-05-09 13:59:41

Python提取PPTword文檔

2024-11-08 17:22:22

2018-03-07 20:00:12

PythonPDFWord

2015-09-21 09:36:54

20 億代碼谷歌

2015-09-18 11:47:45

代碼Google管理

2009-09-25 11:14:16

Hibernate批量

2022-09-21 14:17:58

Umi-OCR軟件

2017-01-06 18:06:22

2020-04-24 12:16:48

Python 圖像分類實戰

2023-01-12 08:07:03

Python代碼版權

2010-03-03 15:39:50

Python抓取網頁內

2021-01-08 05:26:31

ServerlessPython 預測

2016-12-02 08:53:18

Python一行代碼

2018-02-08 16:45:22

前端JS粘貼板

2020-08-13 13:38:04

Excel代碼數據

2020-08-12 09:14:45

Python驗證碼工具
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久99精品久久久久久琪琪 | 国产精品久久久久久亚洲调教 | 国产黄色在线观看 | 伊人国产精品 | 玖玖国产| 国产不卡在线播放 | 日本成人综合 | 超碰在线播| 亚洲人免费视频 | 99成人| av播播 | 久久国产欧美日韩精品 | 国产日韩欧美一区 | 久久手机视频 | 亚洲不卡在线观看 | 在线观看免费av片 | 日日骚av| 国产视频亚洲视频 | 国产成人99久久亚洲综合精品 | 最新超碰| 精品视频一区二区三区在线观看 | 久久国产日韩欧美 | 午夜天堂精品久久久久 | 伊人久久综合 | 亚洲逼院 | 欧美国产日韩在线观看 | 日韩高清电影 | 成人久久 | 国产免费观看久久黄av片涩av | 亚洲区一区二 | 午夜欧美a级理论片915影院 | 精品国产免费一区二区三区五区 | 日日夜夜精品视频 | 一区免费看 | 国产精品国产三级国产aⅴ中文 | 久久国产精品99久久久久 | 久久亚洲高清 | 日韩一区在线播放 | 91精品久久久久久久久久 | 蜜桃精品视频在线 | 黄网站免费在线看 |