You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在Google Custom Search API中指定X Large及以上尺寸的图片?

解决Google Custom Search API获取XL及以上尺寸图片的问题

我之前做图片搜索项目时也碰到过一模一样的问题,Google Custom Search API 的 imgSize 参数确实没直接支持“大于等于某尺寸”的选项,但有几个实用的办法能实现需求:

1. 多请求合并去重

虽然API不允许同时指定多个imgSize值,但你可以分别发起三次请求,分别传入imgSize=xlargeimgSize=xxlargeimgSize=huge,然后把返回的结果合并,再通过图片的image.idlink字段去重,避免重复内容。

示例伪代码:

# 伪代码示例
import requests

API_KEY = "你的API密钥"
CX = "你的搜索引擎ID"
SEARCH_QUERY = "你的搜索关键词"

target_sizes = ["xlarge", "xxlarge", "huge"]
final_results = []
processed_image_ids = set()

for size in target_sizes:
    api_url = f"https://www.googleapis.com/customsearch/v1?q={SEARCH_QUERY}&cx={CX}&key={API_KEY}&searchType=image&imgSize={size}"
    response = requests.get(api_url).json()
    if "items" in response:
        for item in response["items"]:
            img_unique_id = item["image"]["id"]
            if img_unique_id not in processed_image_ids:
                processed_image_ids.add(img_unique_id)
                final_results.append(item)

# final_results 就是合并去重后的XL及以上尺寸图片集合

2. 本地筛选图片尺寸

Google Custom Search API 返回的每个图片结果里,都会携带image.widthimage.height属性。你可以先请求imgSize=xlarge(甚至不指定尺寸,返回全量结果),然后在本地筛选出宽度或高度达到XL标准的图片。

根据Google官方定义:

  • X Large:宽度≥1600px 或 高度≥1600px
  • XX Large:宽度≥2000px 或 高度≥2000px
  • Huge:宽度≥3000px 或 高度≥3000px

所以设置筛选阈值为宽度≥1600px 或 高度≥1600px,就能覆盖所有XL及以上的图片:

示例伪代码:

# 伪代码示例
import requests

API_KEY = "你的API密钥"
CX = "你的搜索引擎ID"
SEARCH_QUERY = "你的搜索关键词"

api_url = f"https://www.googleapis.com/customsearch/v1?q={SEARCH_QUERY}&cx={CX}&key={API_KEY}&searchType=image"
response = requests.get(api_url).json()

filtered_images = []
if "items" in response:
    for item in response["items"]:
        img_w = item["image"]["width"]
        img_h = item["image"]["height"]
        # 筛选XL及以上尺寸的图片
        if img_w >= 1600 or img_h >= 1600:
            filtered_images.append(item)

# filtered_images 就是符合要求的图片列表

3. 结合可编程搜索引擎后台设置

如果你用的是Google Programmable Search Engine(原Custom Search Engine),可以在后台的「图片搜索设置」里,把默认尺寸设为“X Large”,这样API返回的结果本身就以大尺寸为主,再配合上面的本地筛选方法,能减少需要处理的结果数量,效率更高。

不过要注意,后台设置的默认尺寸只是优先返回该尺寸,不会完全排除更大的图片,保险起见还是加上本地筛选,确保不会漏掉XXL和Huge尺寸的内容。

内容的提问来源于stack exchange,提问作者TinyTiger

火山引擎 最新活动