除了文本数据,爬虫常用于批量下载图片或文件。
一、下载图片
import requests
url = 'https://www.example.com/image.jpg'
response = requests.get(url)
with open('image.jpg', 'wb') as f:
f.write(response.content)
- 使用
wb
模式写二进制文件 - 可根据 URL 自动生成文件名
二、批量下载
urls = ['url1.jpg','url2.jpg']
for u in urls:
filename = u.split('/')[-1]
r = requests.get(u)
with open(filename,'wb') as f:
f.write(r.content)
三、显示下载进度
import sys
total = len(urls)
for i,u in enumerate(urls,1):
r = requests.get(u)
with open(u.split('/')[-1],'wb') as f:
f.write(r.content)
sys.stdout.write(f'\r已下载 {i}/{total}')
sys.stdout.flush()
四、小技巧
- 图片/文件通常是二进制,使用
content
- 注意防封,可加入延时
- 文件名处理避免重复或非法字符
总结:图片和文件下载爬虫实用且易入门,掌握 requests、二进制写入和批量处理即可完成日常任务。