首頁  >  文章  >  後端開發  >  爬蟲 | 高畫質桌布大量下載(內附原始碼+工具)

爬蟲 | 高畫質桌布大量下載(內附原始碼+工具)

Python当打之年
Python当打之年轉載
2023-08-10 15:46:011462瀏覽


Unsplash 是一個免費高品質照片的網站,都是真實的攝影照片,照片解析度也很大,對設計師朋友來說是非常好的素材,對一些插畫類文案寫作的朋友也非常實用,當壁紙效果也很不錯。對應功能代碼封已封裝成exe工具,希望對你有幫助,

文末附有程式碼 工具取得方式


##########
1. 導入模組

1.1 匯入模組 

#程式碼:

爬蟲 | 高畫質桌布大量下載(內附原始碼+工具)

我們先來看看手動下載的過程,注意不是右鍵圖片另存為,右鍵另存的方式取得的圖片是經過一定比例壓縮的,清晰度會降低很多。 以Nature為例,點選Download free,選擇下載路徑即可,圖片大小1.43M。

爬蟲 | 高畫質桌布大量下載(內附原始碼+工具)
#接下來,分析特定網頁
首先,我們觀察到網頁底部有頁碼選擇項,我們試著下拉網頁滑桿,發現圖片是動態載入的,也就是我們下拉網頁時,後續圖片才陸續顯示。

透過幾次操作,發現當下拉時,網頁會發出以下幾個請求,點開其中一個,可以看到圖片總數量:10000,總頁數:500

爬蟲 | 高畫質桌布大量下載(內附原始碼+工具)

我們把幾個url拿出來看看:

爬蟲 | 高畫質桌布大量下載(內附原始碼+工具)

以上連結只有page參數不同,而且是依序遞增的,還算是比較友好,請求時依次遍歷就可以了。

頁碼的問題已經解決,接下來分析每張圖片的連結

爬蟲 | 高畫質桌布大量下載(內附原始碼+工具)

#我們看到result清單長度剛好是20,與請求中的per_page值相同,毫無疑問,我們要找的每張圖片連結就在這裡。
分析網頁往往比較耗時,不過總的來說還算順利,下面我們正式爬取圖片。



2. 爬取圖片
#2.1 匯入模組 
import time
import random
import json
import requests
from fake_useragent import UserAgent
  • time:定時
  • ##random:產生隨機數字

  • json:處理json格式資料

    ######### ############requests:網頁請求#########
  • fake_useragent:代理

2.2 获取图片 
模拟代理,以网页的身份访问服务器,避免请求被服务器判定为机器爬虫而不响应请求
ua = UserAgent(verify_ssl=False)
headers = {'User-Agent': ua.random}
根据响应,获取所有图片链接:
def getpicurls(i,headers):
    picurls = []
    url = 'https://unsplash.com/napi/search/photos?query=nature&per_page=20&page={}&xp=feedback-loop-v2%3Aexperiment'.format(i)
    r = requests.get(url, headers=headers, timeout=5)
    time.sleep(random.uniform(3.1, 4.5))
    r.raise_for_status()
    r.encoding = r.apparent_encoding
    allinfo = json.loads(r.text)
    results = allinfo['results']
    for result in results:
        href = result['urls']['full']
        picurls.append(href)
    return picurls
2.3 保存图片 

保存图片文件:
def getpic(count,url):
    r = requests.get(url, headers=headers, timeout=5)
    with open('pictures/{}.jpg'.format(count), 'wb') as f:
        f.write(r.content)
效果:

爬蟲 | 高畫質桌布大量下載(內附原始碼+工具)


3. EXE爬取

exe工具运行结果:

爬蟲 | 高畫質桌布大量下載(內附原始碼+工具)

注意:
  • #盡量不要頻繁的爬取,以免影響網路秩序!

  • 圖片為外網高清圖片,爬取速度和網路有關,一般不會太快。

  • 可以建立代理程式池爬取,速度更快。

以上是爬蟲 | 高畫質桌布大量下載(內附原始碼+工具)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:Python当打之年。如有侵權,請聯絡admin@php.cn刪除