duckduckgo_search的用法

duckduckgo_search 是一个基于 DuckDuckGo 搜索引擎的 Python 包,可以用于执行文本、新闻、图片和视频搜索。以下是 duckduckgo_search 的用法和 DDGS 类的详细说明:

安装:

pip install -U duckduckgo_search

DDGS 类的用法

DDGS 类提供了多种搜索方法,包括文本搜索、新闻搜索、图片搜索和视频搜索。

1. 文本搜索(text() 方法)
from duckduckgo_search import DDGS

results = DDGS().text(
    keywords="python programming",
    region="wt-wt",  # 地区代码,如 "us-en"
    safesearch="moderate",  # 安全搜索级别:on, moderate, off
    timelimit=None,  # 时间限制:d(天)、w(周)、m(月)、y(年)
    backend="auto",  # 后端选择:auto, html, lite
    max_results=5  # 最大结果数量
)
print(results)
2. 新闻搜索(news() 方法)
results = DDGS().news(
    keywords="python programming",
    region="wt-wt",
    safesearch="moderate",
    timelimit="d",  # 可选:d(天)、w(周)、m(月)
    max_results=10
)
print(results)
3. 图片搜索(images() 方法)
results = DDGS().images(
    keywords="python programming",
    region="wt-wt",
    safesearch="moderate",
    timelimit=None,
    max_results=10
)
print(results)
4. 视频搜索(videos() 方法)
results = DDGS().videos(
    keywords="python programming",
    region="wt-wt",
    safesearch="moderate",
    timelimit=None,
    max_results=10
)
print(results)

搜索结果格式

搜索结果通常是一个包含多个字典的列表,每个字典包含以下字段:

  • title: 标题

  • href: 链接

  • body: 描述内容

  • image: 图片链接(仅图片搜索)

  • date: 发布日期(仅新闻搜索)

注意事项

  1. 隐私和使用限制duckduckgo_search 是基于 DuckDuckGo 的非官方接口,完全免费且无需 API 密钥。但请注意合理使用,避免滥用。

  2. 搜索结果质量:虽然 DuckDuckGo 以隐私保护为特色,但其搜索结果的质量可能不如 Google 精准。

 

 DDGS().text()用法

DDGS().text() 方法中,keywords 参数用于指定搜索关键词。如果你需要传递多个关键词,可以通过以下几种方式实现:

1. 使用空格分隔关键词

最简单的方式是将多个关键词用空格分隔,形成一个字符串。DuckDuckGo 会将这些关键词组合起来进行搜索。

from duckduckgo_search import DDGS

results = DDGS().text(
    keywords="python programming tutorial",
    max_results=5
)
print(results)

2. 使用布尔运算符

DuckDuckGo 支持布尔运算符(如 ANDORNOT)来组合关键词,从而更精确地控制搜索结果。

示例 1:AND 操作
results = DDGS().text(
    keywords="python AND programming",
    max_results=5
)
print(results)
示例 2:OR 操作
results = DDGS().text(
    keywords="python OR java",
    max_results=5
)
print(results)
示例 3:NOT 操作
results = DDGS().text(
    keywords="python NOT java",
    max_results=5
)
print(results)

3. 使用引号精确匹配

如果你希望搜索结果中包含某个完整的短语,可以将短语用引号括起来。这种方式会强制搜索结果中包含该短语。

示例:

results = DDGS().text(
    keywords='"python programming"',
    max_results=5
)
print(results)

4. 使用多个关键词参数(Python 列表)

如果你有多个关键词,但希望它们以不同的方式组合,可以先将它们存储在一个列表中,然后用空格或布尔运算符连接。

示例:
keywords = ["python", "programming", "tutorial"]
query = " ".join(keywords)  # 将关键词用空格连接
results = DDGS().text(
    keywords=query,
    max_results=5
)
print(results)

5. 使用 site: 限定符

如果你想限制搜索结果来自特定的网站,可以使用 site: 限定符。

示例:
results = DDGS().text(
    keywords="python programming site:stackoverflow.com",
    max_results=5
)
print(results)

总结

DDGS().text() 方法中,keywords 参数支持多种组合方式:

  • 使用空格分隔关键词,适合简单搜索。

  • 使用布尔运算符(ANDORNOT)进行复杂搜索。

  • 使用引号精确匹配短语。

  • 使用限定符(如 site:)进一步限制搜索范围。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值