You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解决Jupyter中用DDGS搜图时的DDGSException: No results found异常

解决DDGS图片搜索频繁出现DDGSException: No results found的问题

以下是几个实用的解决方向,结合你的代码给出修改方案:

1. 添加异常捕获与重试逻辑

临时网络波动或DDG的反爬机制可能导致单次请求失败,添加重试能有效提升稳定性:

from ddgs import DDGS, DDGSException
from fastcore.all import *
from itertools import islice
import time
from fastdownload import download_url
from fastai.vision.all import *

def search_images(keywords, max_images=200, retry_times=3):
    for _ in range(retry_times):
        try:
            with DDGS() as ddgs:
                results = L(r['image'] for r in islice(ddgs.images(query=keywords), max_images))
                if results:
                    return results
                time.sleep(1)
        except DDGSException:
            time.sleep(1)
    return L()

# 使用时先判断结果是否为空
img_urls = search_images('forest', max_images=1)
if img_urls:
    download_url(img_urls[0], 'forest.jpg', show_progress=False)
    Image.open('forest.jpg').to_thumb(256,256)
else:
    print("多次搜索未获取到结果")

2. 指定DDGS的搜索后端

DDGS支持多种搜索后端,默认后端可能不稳定,尝试切换到lite或html后端:

修改ddgs.images的调用,添加backend参数:

results = L(r['image'] for r in islice(ddgs.images(query=keywords, backend="lite"), max_images))

或者使用html后端:

results = L(r['image'] for r in islice(ddgs.images(query=keywords, backend="html"), max_images))

3. 调整搜索参数

  • 明确指定region参数(比如"us-en"、"sg-en"),避免DDG自动分配的区域无结果
  • 降低safesearch级别(比如设置为"off"),部分关键词在严格安全搜索下可能无结果
  • 设置max_results参数,确保DDG返回足够的结果量

示例:

ddgs.images(
    query=keywords,
    region="us-en",
    safesearch="moderate",
    max_results=max_images,
    backend="lite"
)

4. 自定义请求头

部分情况下,DDG会拦截缺少浏览器标识的请求,你可以通过DDGS的headers参数添加自定义请求头:

custom_headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36"
}
with DDGS(headers=custom_headers) as ddgs:
    results = L(r['image'] for r in islice(ddgs.images(query=keywords), max_images))

额外建议

  • 避免短时间内频繁发起大量请求,添加适当的间隔时间(比如每次请求后sleep(1))
  • 尝试更换不同的VPN节点,部分节点可能被DDG列入黑名单

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 10:42:46