跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
PythonAI算法

Python 批量爬取图片入门教程

网络爬虫技术通过模拟浏览器请求自动获取网页信息。 Python 爬虫的基本原理,包括请求发送、数据解析及文件下载流程。重点讲解了 requests、re 和 urllib 库的使用,并提供了批量下载图片的完整代码示例。文中强调了遵守网站协议及法律法规的重要性,适合希望掌握数据采集技能的初学者参考。

暖阳发布于 2025/2/7更新于 2026/10/22104 浏览
Python 批量爬取图片入门教程

前言

网络爬虫是一种自动抓取网页信息的程序。在数据收集、机器学习训练等场景中,批量获取图片等资源至关重要。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')  f:
                f.write(requests.get(img_url, headers=headers).content)
            ()
         Exception  e:
            ()

 __name__ == :
    
    download_images(, , )
as
print
f'已下载:{file_name}'
except
as
print
f'下载失败:{img_url}, 错误:{e}'
if
'__main__'
# 替换为实际可用的搜索接口地址
'壁纸'
10
'./images'

注意事项

  1. 不同网站的数据结构不同,正则表达式需根据实际情况调整。
  2. 高频请求可能导致 IP 被封禁,建议添加延时或使用代理。
  3. 请尊重版权,仅用于合法合规的学习与研究。

目录

  1. 前言
  2. 爬虫原理
  3. 核心库
  4. 代码实现
  5. 注意事项

更多推荐文章

查看全部
  • Python 面向对象编程基础:类、对象与核心概念详解
  • 19 个合法的黑客技术在线练习平台推荐
  • C++ 初学者核心概念与常见误区解析
  • 用 Trae IDE 和 Figma AI Bridge 将设计稿自动转成网页代码
  • SpringBoot 入门:SpringMVC 综合练习与应用分层
  • Python 核心面试考点:装饰器、数据结构与版本差异
  • 算法实战:替换所有问号与提莫攻击问题解析
  • OpenCode 快速上手指南:开源免费的 Claude Code 替代方案
  • LangChain 构建智能 AI 客服系统实战
  • JNI 开发:C++ Debug 正常 Release 返回 NaN 原因解析
  • 秋叶绘世 Stable Diffusion 整合包与 ComfyUI 环境配置说明
  • C 语言 Web 开发:CGI、FastCGI 与 Nginx 实战解析
  • SDXL Prompt Styler:提示词风格化增强实战指南
  • C++11 核心新特性详解:初始化、引用与移动语义
  • 法律领域自然语言处理(NLP)应用场景与实战
  • Android 开发工程师职业发展路径与行业现状深度解析
  • 人工智能应用工程师(高级)课程体系与实战路径解析
  • AI 安全研究:基于 PGD 的 Stable Diffusion 视觉提示词注入分析
  • C++ 函数指针与回调函数深度解析
  • Rust 与 WebAssembly 深度实战:高性能代码运行于浏览器与 Node.js

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

  • RSA密钥对生成器

    生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

  • Mermaid 预览与可视化编辑

    基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

  • 随机西班牙地址生成器

    随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online

  • Gemini 图片去水印

    基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online

  • curl 转代码

    解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online