SuperAPI AI 工具集

google-image-crawler

数据与分析

查看项目

更新于 10-16 08:54

技能介绍

用途

google-image-crawler 是一个基于 Playwright 的 Google 图片爬虫 Skill,主要用于自动化搜索 Google 图片、提取原始高清图片 URL,并进行批量下载。整个流程无需手动操作浏览器。

主要能力

  • 使用 Playwright 自动化 Google 图片搜索,无需手动操作浏览器。
  • 智能提取原始高清图片 URL,原理是解析搜索结果 /imgres 链接中的 imgurl 参数。
  • 支持批量下载图片,并提供并发控制。
  • 提供独立的下载模块 ImageDownloader,支持线程池并发和进度显示。
  • 提供命令行工具 cli.py,可从文件或单个 URL 下载图片。

安装

pip install playwright aiohttp requests tqdm
playwright install chromium

使用方式

基础异步用法:

import asyncio
from crawler import GoogleImageCrawler

async def main():
    async with GoogleImageCrawler() as crawler:
        results = await crawler.search("cute cats", num_images=10)
        for result in results:
            print(f"URL: {result.url}")
            print(f"Size: {result.width}x{result.height}")

        downloaded = await crawler.download_images(
            results,
            output_dir="./downloads"
        )

asyncio.run(main())

同步快捷调用:

from crawler import search_images_sync

results = search_images_sync("mountain landscape", num_images=5)
for r in results:
    print(r.url)

搜索方法参数包括 keyword、num_images、safe_search、min_width、min_height。下载方法参数包括 results、output_dir、concurrency。

独立下载模块:

from downloader import ImageDownloader

downloader = ImageDownloader(
    output_dir="./downloads",
    concurrent=5,
    max_retries=3
)

results = downloader.download_batch(urls)

命令行工具示例:

python cli.py -f urls.txt -o ./images
python cli.py -f urls.txt -c 10 -t 60 -o ./images
python cli.py -u "https://example.com/image.jpg" -o ./images

资料还给出了带尺寸过滤的高清壁纸搜索、搜索并下载、组合使用爬虫与下载器等示例。

关键对象与参数

ImageResult 属性包括:url(原始高清图片 URL)、thumbnail_url(缩略图 URL)、title(图片标题)、source_url(来源网页 URL)、width(图片宽度)、height(图片高度)。

GoogleImageCrawler 初始化参数包括:headless(默认 True)、timeout(默认 30)、scroll_pause(默认 1.5)、max_retries(默认 3)、proxy(默认 None)。

ImageDownloader 初始化参数包括:output_dir(默认 "./downloads")、timeout(默认 30)、max_retries(默认 3)、concurrent(默认 5)、headers(默认 None)。

CLI 参数包括:--file/-f、--url/-u、--output/-o、--concurrent/-c、--timeout/-t、--retries/-r、--limit/-l、--proxy。

技术细节

原图 URL 提取原理:Google 图片搜索结果中每个图片包含一个 /imgres 链接,形如 /imgres?imgurl=https://example.com/original.jpg&imgrefurl=...,爬虫通过解析 imgurl 参数获取原图地址。

反爬策略包括:使用正常用户 User-Agent、设置合理视口大小(1920x1080)、自动处理 Cookie 同意弹窗、滚动间隔模拟人工操作(1.5 秒)、指数退避重试机制。

文件结构:

google-image-crawler/
├── crawler.py          # 爬虫核心模块 (Playwright + 异步)
├── downloader.py       # 图片下载模块 (Requests + 线程池)
├── config.py           # 配置管理
├── cli.py              # 命令行工具
├── example.py          # 使用示例
└── docs/               # 文档
    ├── architecture.md # 架构设计
    ├── api-reference.md # API 参考
    └── examples.md     # 更多示例

依赖包括:playwright(浏览器自动化)、aiohttp(异步 HTTP 客户端)、requests(同步 HTTP 请求)、tqdm(进度条显示)。

适用场景

  • 需要按关键词批量收集图片原始高清 URL 的任务。
  • 需要按最小宽高筛选高清图片(如壁纸类素材)的场景。
  • 需要通过命令行或 Python API 批量下载一组图片 URL 的场景。

限制与注意事项

资料中给出的注意事项包括:遵守 Google 服务条款和目标网站的 robots.txt;控制频率,避免过于频繁的请求,建议设置合理的 scroll_pause;商业使用请确认图片版权;大量爬取时建议使用代理避免 IP 限制;使用 async with 上下文管理器确保浏览器正确关闭。

常见错误及处理:浏览器初始化失败时确保已执行 playwright install chromium;搜索超时或页面加载失败时可增加超时时间或使用代理;图片下载失败时可增加重试次数或使用独立下载模块;IP 被限制时可使用代理并增加滚动间隔。

License:MIT。

除上述内容外,工具的收费、价格、平台支持范围等事实暂未提供。