Python 爬取 5K 解析度超清唯美桌布

2021-09-20 13:32:24 字數 3022 閱讀 8930

簡介

紙的選擇其實很大程度上能看出電腦主人的內心世界,有的人喜歡風景,有的人喜歡星空,有的人喜歡美女,有的人喜歡動物。然而,終究有一天你已經產生審美疲勞了,但你下定決定要換桌布的時候,又發現網上的桌布要麼解析度低,要麼帶有水印。

這裡有一款mac下的小清新桌布神器pap.er,可能是mac下最好的桌布軟體,自帶5k超清解析度桌布,富有多種型別桌布,當我們想在windows或者linux下使用的時候,就可以考慮將5k超清解析度桌布爬取下來。

編寫思路

抓包分析結果如下:

型別位址

最新最熱

女生星空

引數page不用改動,per_page指的是每頁提取的數量,也就是我們想要提取的數量。

抓完包之後,我們開始編寫5k桌布解析程式

# 爬取不同型別

def crawler_photo(type_id, photo_count):

# 最新 1, 最熱 2, 女生 3, 星空 4

if(type_id == 1):

url = '' + str(photo_count)

elif(type_id == 2):

url = '' + str(photo_count)

elif(type_id == 3):

url = '' + str(photo_count)

elif(type_id == 4):

url = '' + str(photo_count)

# 獲取鏈結列表資料,json格式

respond = requests.get(url, headers=headers)

# 對json格式轉化為python物件

photo_data = json.loads(respond.content)

now_photo_count = 1

# 所有張數

all_photo_count = len(photo_data)

for photo in photo_data:

if not os.path.exists('./' + str(type_id)):

os.makedirs('./' + str(type_id))

file_url = photo['urls']['raw']

file_name_only = file_url.split('/')

file_name_only = file_name_only[len(file_name_only) -1]

# 準備儲存到本地的完整路徑

file_full_name = './' + str(type_id) + '/' + file_name_only

down_load(file_url, file_full_name, now_photo_count, all_photo_count)

now_photo_count = now_photo_count + 1

根據不同型別的桌布,建立不同的資料夾編號進行分類。

def down_load(file_url, file_full_name, now_photo_count, all_photo_count):

with closing(requests.get(file_url, headers=headers, stream=true)) as response:

chunk_size = 1024  # 單次請求最大值

content_size = int(response.headers['content-length'])  # 檔案總大小

data_count = 0 # 當前已傳輸的大小

with open(file_full_name, "wb") as file:

for data in response.iter_content(chunk_size=chunk_size):

file.write(data)

done_block = int((data_count / content_size) * 50)

data_count = data_count + len(data)

now_jd = (data_count / content_size) * 100

print("\r %s:[%s%s] %d%% %d/%d" % (file_full_name, done_block * '█', ' ' * (50 - 1 - done_block), now_jd, now_photo_count, all_photo_count), end=" ")

file_type = filetype.guess(file_full_name)

os.rename(file_full_name, file_full_name + '.' + file_type.extension)

最後,開始在main中爬取5k高畫質桌布:

if __name__ == '__main__':

# 最新 1, 最熱 2, 女生 3, 星空 4

# 爬取型別為3的(女生),一共準備爬取100張

print("程式已經開始執行,請稍等……")

crawler_photo(1, 100)

crawler_photo(2, 100)

crawler_photo(3, 100)

crawler_photo(4, 100)

使用教程確保以下庫均已安裝:

# 如果沒有安裝,請使用pip install module安裝

import requests

import filetype

import os

import json

from contextlib import closing

演示

Python爬取5K解析度超清唯美桌布

桌布的選擇其實很大程度上能看出電腦主人的內心世界,有的人喜歡風景,有的人喜歡星空,有的人喜歡美女,有的人喜歡動物。然而,終究有一天你已經產生審美疲勞了,但你下定決定要換桌布的時候,又發現網上的桌布要麼解析度低,要麼帶有水印。這裡有一款mac下的小清新桌布神器pap.er,可能是mac下最好的桌布軟體...

牛客假日團隊賽5 K

時間限制 c c 1秒,其他語言2秒 空間限制 c c 32768k,其他語言65536k 64bit io format lld 題目描述 最近,奶牛們熱衷於把金幣包在麵粉裡,然後把它們烤成餡餅。第i塊餡餅中含有ni 1 ni 25 塊金幣,並且,這個數字被醒目地標記在餡餅表面。奶牛們把所有烤好的...

python練習5 爬取有道翻譯

具體 如下 import urllib.request import urllib.parse 可以實現url的構造,但是去掉也不影響結果 import json 把獲取到的字串轉換成字典的時候需要用到 content input 輸入要翻譯的內容 url 取network裡面找到這個url,把裡面...