前言
网络爬虫是一种自动抓取网页信息的程序。在数据收集、机器学习训练等场景中,批量获取图片等资源至关重要。Python 因其丰富的库支持,成为编写爬虫的首选语言之一。
爬虫原理
浏览器与服务器通过 HTTP 协议交互。爬虫模拟浏览器的请求行为,发送指令给服务器,接收返回的数据(如 HTML)。服务器通常无法区分请求来自人类还是程序,因此可以通过模仿浏览器特征来获取数据。
核心库
实现爬虫主要依赖以下标准库:
requests: 发送 HTTP 请求。re: 正则表达式,用于提取特定格式的数据(如图片 URL)。urllib: 处理文件下载。
代码实现
以下示例演示如何批量下载指定关键词的图片。请注意,实际应用中需遵守目标网站的 robots.txt 协议及相关法律法规。
import requests
import re
import os
def download_images(keyword, count, save_dir):
"""
批量下载图片
:param keyword: 搜索关键词
:param count: 下载数量
:param save_dir: 保存目录
"""
if not os.path.exists(save_dir):
os.makedirs(save_dir)
# 设置请求头,模拟浏览器
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)'
}
# 构造请求 URL (此处仅为示例,实际需根据目标网站接口调整)
url = f'https://example.com/search?q={keyword}'
response = requests.get(url, headers=headers)
response.encoding = response.apparent_encoding
# 使用正则提取图片地址
img_urls = re.findall(r'"objURL":"(.*?)"', response.text)
for i in range(min(count, len(img_urls))):
img_url = img_urls[i]
try:
file_name = os.path.join(save_dir, f'{i}.jpg')
with open(file_name, 'wb') as f:
f.write(requests.get(img_url, headers=headers).content)
()
Exception e:
()
__name__ == :
download_images(, , )


