前言

由于最近smms不太稳定,有时候会访问慢、加载慢,故决定迁移图床,但是smms没有提供批量操作的功能,故从开发者文档寻找突破,采用爬虫爬取。

coding

开发者文档,从开发者文档我们拿到了请求头部 headersurl以及返回的数据,这对于我们编写程序就很容易了。

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
import requests

# 替换为你的smms图床API Token
api_token = "****"

# API请求地址
api_url = "https://sm.ms/api/v2/upload_history?page=1"

# 设置请求头部
headers = {
"Authorization": f"{api_token}",
"Content-Type": "multipart/form-data"
}

# 发送GET请求获取照片列表
response = requests.get(api_url, headers=headers)
data = response.json()
print(data)

# 处理API响应
if "data" in data:
for image_info in data["data"]:
img_url = image_info["url"]
img_name = img_url.split("/")[-1]
img_data = requests.get(img_url).content

# 保存照片到本地
with open(img_name, "wb") as img_file:
img_file.write(img_data)
print(f"Downloaded: {img_name}")
else:
print("API request failed:", data)

这里因为我的图床只有一页,故page就没有用循环来处理了,你可以尝试修改为2看返回的数据是否为空来决定你的page2是否有图

可以看到每一页有100张图,我这里就懒得写循环了~~!

运行结果

该封面图片由RoshalysPixabay上发布