在使用爬虫是面对页面上的图片有三种处理方法
第一种使用request方法下载图片
首先创建了一个名为"images"的文件夹用于保存图片。然后,通过发送HTTP GET请求来获取图片的数据。如果请求成功(状态码为200),则将图片数据保存到本地的文件中。保存图片时需要以二进制写入的方式打开文件,然后将请求返回的内容response.content
写入文件中。
需要注意的是,上面的示例只适用于单张图片的下载。如果需要下载多张图片,可以在循环中遍历图片的URL,并根据需要调整文件名和保存路径。另外,还可以考虑使用多线程或异步请求来提高图片下载的效率。
import requests
import os
# 创建保存图片的文件夹
os.makedirs('images', exist_ok=True)
# 爬取图片的URL
url = 'https://example.com/image.jpg'
# 发送HTTP请求获取图片数据
response = requests.get(url)
# 如果请求成功
if response.status_code == 200:
# 提取图片文件名
filename = os.path.join('images', 'image.jpg')
# 保存图片到本地
with open(filename, 'wb') as f:
f.write(response.content)
print('图片已保存:', filename)
else:
print('图片下载失败')
第二种,image模块保存图片
- 使用
requests
库或其他方式获取图片的二进制数据。 - 使用
Image.open()
函数打开二进制数据并创建一个Image
对象。 - 使用
Image.save()
方法保存Image
对象到本地文件。
import requests
from PIL import Image
import os
# 创建保存图片的文件夹
os.makedirs('images', exist_ok=True)
# 图片的URL
url = 'https://example.com/image.jpg'
# 发送HTTP请求获取图片数据
response = requests.get(url)
# 如果请求成功
if response.status_code == 200:
# 提取图片文件名
filename = os.path.join('images', 'image.jpg')
# 使用Image.open()打开图片数据并创建Image对象
img = Image.open(BytesIO(response.content))
# 保存图片到本地
img.save(filename)
print('图片已保存:', filename)
else:
print('图片下载失败')
第三种,urllib.request.urlretrieve(),保存图片
首先创建了一个名为"images"的文件夹用于保存图片。然后,使用urllib.request.urlretrieve()
函数从指定的URL下载图片,并保存到本地的文件中。urlretrieve()
函数接受两个参数:图片的URL和保存路径。当下载完成后,它会返回一个包含文件名和HTTP响应信息的元组。
import urllib.request
import os
# 创建保存图片的文件夹
os.makedirs('images', exist_ok=True)
# 图片的URL
url = 'https://example.com/image.jpg'
# 图片保存路径
filename = os.path.join('images', 'image.jpg')
# 下载图片并保存到本地
urllib.request.urlretrieve(url, filename)
print('图片已保存:', filename)