import os
import jsonpath
import requests
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.82 Safari/537.36',
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9'
}
def get_url(kw, page_num):
# 通过抓包获得异步加载的url
url_list = []
for i in range(1, page_num + 1):
# print(i)
url = 'https://www.duitang.com/napi/blogv2/list/by_search/?kw={}&after_id={}'.format(kw, 24 * i)
url_list.append(url)
return url_list
# return resp.json()
if __name__ == '__main__':
kw = input("输入搜索内容:")
page_num = int(input("需要加载多少页:"))
base_path = os.path.dirname(__file__)
path = os.path.join(base_path, '{}'.format(kw))
if not os.path.exists(path):
os.makedirs(path)
# 内容网址
url_s = get_url(kw, page_num)
for i in range(len(url_s)):
resp = requests.get(url_s[i], headers=headers)
s = resp.json()
# 通过jsonpath获取到的图片链接地址
src = jsonpath.jsonpath(s, '$.data.object_list[*].photo.path')
for j in range(len(src)):
img_src = requests.get(url=src[j]).content
pic_path = path + './{}'.format(kw) + f'{i}_' + f'{j}' + '.jpg'
with open(pic_path, 'wb') as f:
f.write(img_src)
print("<<====正在保存第{}张,剩{}张====>>".format(j + 1, len(src) - j - 1))
print("<<====当前页面已保存====>>")
1.输入需要搜索的关键字
2.输入页数(1页24张图)
3.保存图片到关键字文件夹中
4.图片以关键字命名