欢迎光临
我们一直在努力

requests 爬取异步加载图片

目标网站是个异步加载的,增加了个计算异步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()
赞(0) 打赏
未经允许不得转载:创想未来 » requests 爬取异步加载图片

评论 抢沙发

评论前必须登录!

 

更好的Python学习

支持快讯、专题、百度收录推送、人机验证、多级分类筛选器,适用于垂直站点、科技博客、个人站,扁平化设计、简洁白色、超多功能配置、会员中心、直达链接、文章图片弹窗、自动缩略图等...

联系我们联系我们

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续提供更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫

微信扫一扫

登录

找回密码

注册