使用grequests库爬取图片并保存到本地,首先需要安装grequests库:
然后根据图片链接创建一个请求对象,并指定回调函数用于处理响应:
import grequests
image_url = 'https://img3.doubanio.com/view/photo/s_ratio_poster/public/p480747492.webp'
def save_image(response, *args, **kwargs):
# 获取图片文件名
file_name = image_url.split('/')[-1]
# 保存图片到本地
with open(file_name, 'wb') as f:
f.write(response.content)
print(f"图片 {file_name} 已保存!")
# 创建请求对象
req = grequests.get(image_url, hooks=dict(response=save_image))
# 发送请求并等待响应
grequests.map([req])
以上代码中,`image_url`是要下载的图片链接。定义了一个名为`save_image`的回调函数,用于将响应内容保存到本地。在回调函数中,我们可以通过`response.content`获取到图片的二进制数据。
然后,利用`grequests.get()`创建一个请求对象,将回调函数与请求对象绑定。
最后,使用`grequests.map()`发送请求并等待响应。请求完成后,会自动触发回调函数保存图片到本地。
请注意,由于grequests使用了异步请求,所以在处理多个请求时,可以大大提高爬取速度。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 |