目标网站是个异步加载的,增加了个计算异步ID的函数实现自动获取图片URL并下载。
代码仅供参考,代码中目标网站URL用*代替。
"""
目标 URL https://www.****.com
"""
import requests
class Image(object):
"""
一个用于下载图片的类。
"""
def __init__(self):
"""
初始化函数,设置图片下载的基础URL、请求头和当前下载图片序号。
"""
self.url = 'https://www.***.com/napi/blogv2/list/by_search/?'
self.headers = {
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) '
'Chrome/94.0.4606.71 Safari/537.36 Core/1.94.237.400 QQBrowser/12.4.5621.400'}
self.number = 1 # 当前下载的图片序号
def get_url_index(self, num):
"""
根据提供的序号获取图片URL列表。
:param num: 请求的起始ID,用于分页。
:return: 返回一个包含图片信息的列表。
"""
params = {'kw': '美女', 'after_id': num, 'type': 'feed',
'include_fields': 'top_comments,is_root,source_link,item,buyable,root_id,status,like_count,like_id,'
'sender,album,reply_count,favorite_blog_id', '_type': '', '_': '1713767718749'}
res = requests.get(self.url, params=params, headers=self.headers).json()['data']['object_list']
return res
def get_url_list(self, res):
"""
遍历获取的图片信息列表,并下载图片。
:param res: 包含图片信息的列表。
"""
for i in res:
image_url = i['photo']['path']
self.write_data(image_url)
def write_data(self, image_url):
"""
下载图片并保存。
:param image_url: 图片的URL。
"""
with open(f'./image/{self.number}.jpg', 'wb') as f:
f.write(requests.get(image_url).content)
print(f'第{self.number}张图片下载完成.')
self.number += 1
def main(self):
"""
主函数,用于下载图片。循环获取图片URL列表并下载。
"""
for i in range(0, 16):
res = self.get_url_index(i * 24)
self.get_url_list(res)
if __name__ == '__main__':
image = Image()
image.main()
评论前必须登录!
注册