Skip to main content

A powerful Google image crawler that supports batch downloading, image processing, and proxy settings

Project description

GlimCrawl

PyPI version Python Version License

English | 简体中文

一个强大的 Google 图片爬虫工具,支持批量下载、图片处理和代理设置。名称来源:glimpse(一瞥)+ crawl(爬行),强调"快速捕捉网络图片片段"。

✨ 特性

  • 🚀 异步并发下载,提高效率
  • 🎨 自动图片处理和优化(去水印、调整大小等)
  • 🌐 支持代理设置,解决网络问题
  • 📏 支持图片尺寸和时间筛选
  • 🖥️ 命令行界面,易于使用
  • 📦 支持作为 Python 库导入使用
  • 🔒 安全可靠,遵循 Google 搜索规范
  • 📁 灵活的目录管理(支持关键词子目录、目录存在处理等)

📦 安装

# 从 PyPI 安装(推荐)
pip install glimcrawl

# 安装 Playwright 浏览器(必需)
playwright install chromium

🚀 快速开始

命令行使用

# 基本使用
glimcrawl download "猫咪"

# 指定下载数量和保存目录
glimcrawl download "猫咪" -l 50 -d ./images

# 使用代理
glimcrawl download "猫咪" -p http://127.0.0.1:1080

# 筛选大图和最近图片
glimcrawl download "猫咪" -s l -t w

# 禁用关键词子目录
glimcrawl download "猫咪" --no-keyword-dir

# 目录已存在时跳过创建
glimcrawl download "猫咪" -e skip

# 以JSON格式输出结果
glimcrawl download "猫咪" -j

Python 库使用

import asyncio
from glimcrawl import GoogleImageCrawler
from playwright.async_api import async_playwright

async def main():
    async with async_playwright() as p:
        browser = await p.chromium.launch()
        crawler = GoogleImageCrawler(browser)
        
        # 下载图片并获取结果
        result = await crawler.crawl_images(
            keyword="猫咪",
            max_images=20,
            save_dir="images",
            use_keyword_dir=True,
            if_exists="rename",
            size="l",  # 大图
            date="w"   # 一周内
        )
        
        # 打印下载结果
        print(result)
        
        # 获取下载的文件路径
        print("\n下载的文件:")
        for path in result.file_paths:
            print(f"- {path}")
            
        # 获取统计信息
        print(f"\n下载统计:")
        print(f"- 总图片数: {result.total_images}")
        print(f"- 成功下载: {result.success_count}")
        print(f"- 下载失败: {result.failed_count}")
        print(f"- 成功率: {result.success_rate:.1f}%")
        print(f"- 耗时: {result.duration:.1f}秒")
        
        await browser.close()

asyncio.run(main())

📝 参数说明

命令行参数

参数 说明 默认值 示例
keyword 搜索关键词(必需) - "猫咪"
-l, --limit 最大下载数量 100 -l 50
-d, --save-dir 保存目录 images -d ./images
--use-keyword-dir/--no-keyword-dir 是否使用关键词创建子目录 True --no-keyword-dir
-e, --if-exists 目录已存在时的处理方式 rename -e skip
-p, --proxy 代理服务器 None -p http://127.0.0.1:1080
-s, --size 图片尺寸 None -s l (大图)
-t, --date 时间范围 None -t w (一周内)

图片尺寸选项

  • l: 大图
  • m: 中图
  • i: 图标

时间范围选项

  • d: 24小时内
  • w: 一周内
  • m: 一月内
  • y: 一年内

🛠️ 图片处理

下载的图片会自动进行以下处理:

  1. 格式转换:统一转为 JPG 格式
  2. 尺寸调整:最大 1920x1080,保持比例
  3. 质量优化:85% 压缩率
  4. 文件命名:使用 MD5 哈希,避免重复
  5. 去水印:自动识别和移除水印(实验性功能)

🔒 安全建议

  1. 使用代理时建议配置 HTTPS 代理
  2. 遵循目标网站的爬虫规范
  3. 合理设置下载间隔和并发数
  4. 图片仅供学习研究使用

🤝 贡献

  1. Fork 本仓库
  2. 创建新分支: git checkout -b feat/new-feature
  3. 提交更改: git commit -am 'feat: add new feature'
  4. 推送分支: git push origin feat/new-feature
  5. 提交 Pull Request

📄 许可证

MIT License © 2025 Duckweeds7

📋 更新日志

v0.1.1 (2025-04-20)

  • ✨ 新增目录管理功能
    • 支持使用关键词创建子目录
    • 支持目录已存在时的处理策略(跳过/覆盖/重命名)
    • 优化目录创建和文件保存逻辑
  • 🐛 修复已知问题
    • 修复目录已存在时的处理逻辑
    • 优化文件命名和保存机制
  • 📝 更新文档
    • 添加新功能使用说明
    • 完善参数说明
    • 更新示例代码

v0.1.0 (2025-04-19)

  • 🎉 首次发布
    • 支持基本的图片下载功能
    • 支持图片处理和优化
    • 支持代理设置
    • 支持命令行界面

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

glimcrawl-0.1.2.tar.gz (14.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

glimcrawl-0.1.2-py3-none-any.whl (16.7 kB view details)

Uploaded Python 3

File details

Details for the file glimcrawl-0.1.2.tar.gz.

File metadata

  • Download URL: glimcrawl-0.1.2.tar.gz
  • Upload date:
  • Size: 14.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.10

File hashes

Hashes for glimcrawl-0.1.2.tar.gz
Algorithm Hash digest
SHA256 8e2610ed8009b20387d47eefa64a1f06a6ddac8b111ffc909be5d28ca56e093e
MD5 ac42d0c325c96e397a020ab3833727a7
BLAKE2b-256 9052b94b02b27f57a3e31519fd3c55e4acd8613e7ce9579af2bbe8a076c06e08

See more details on using hashes here.

File details

Details for the file glimcrawl-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: glimcrawl-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 16.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.10

File hashes

Hashes for glimcrawl-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 94d7d9dc1daef04616e952534d63366ce3c32de9a0dc4bec79a3e7b9093d77df
MD5 7d8a24861747f663642f30b0b807aaf0
BLAKE2b-256 b2ab40c5ce6358356d1261a55b11abede13414593fd2e7d66f05eb16e2cd3aa5

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page