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

Python 批量爬取图片入门教程

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

暖阳发布于 2025/2/7更新于 2026/9/1175 浏览
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') as f:
                f.write(requests.get(img_url, headers=headers).content)
            print(f'已下载:{file_name}')
        except Exception as e:
            print(f'下载失败:{img_url}, 错误:{e}')

if __name__ == '__main__':
    # 替换为实际可用的搜索接口地址
    download_images('壁纸', 10, './images')

注意事项

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

目录

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

更多推荐文章

查看全部
  • AI 产品经理必备核心能力与技术知识体系详解
  • Flutter 三方库 arcane_helper_utils 鸿蒙化适配指南
  • Whisper.cpp 离线语音识别完整使用指南
  • 渐进式 AIGC 系统架构与多模态大模型集成方案
  • Java 微服务架构设计模式:云原生分布式系统实战
  • 宇树 G1 机器人建图教程:FAST-LIO 环境配置与 RViz 启动
  • FineFTP-Server 轻量级 C++ 跨平台 FTP 服务器指南
  • 行星减速器原理、计算与 C++ 实现
  • Linux 系统 Docker 安装、配置与核心使用实战
  • VSCode Java 项目 JDK 配置与版本切换指南
  • JDK 下载与多系统安装指南
  • LangChain 实战:工具调用与结构化输出应用指南
  • Ubuntu 安装 OpenClaw 遇 Gateway 服务检查失败问题排查与解决
  • AI 绘画模型加载报错修复指南
  • Milvus 实战:Attu 可视化安装与 Python 整合指南
  • 使用 Docker 部署 iptvnator 构建家庭 IPTV 媒体中心
  • Linux 下开启 MySQL 慢查询日志与分析实战
  • 数据结构:B-树原理与实现
  • 深度学习中的注意力机制(Attention Mechanism)
  • 2026 年了,这些 AI IDE 还能白嫖

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如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