【问题标题】:Duckduckgo API getting search results [duplicate]Duckduckgo API获取搜索结果[重复]
【发布时间】:2016-05-03 19:08:55
【问题描述】:

我想要做的只是提交字符串查询(相当于手动输入搜索栏)并保存第一个结果的 URL(如果有的话)。

我已经问过一个类似的问题 (Python search scraping),它的答案适用于谷歌我的问题是我无法在任何地方找到 Duckduckgo 的搜索 api 地址。你能帮我或建议另一种方法吗?

【问题讨论】:

    标签: api duckduckgo-api


    【解决方案1】:

    tl;dr -- 屏幕抓取 https://duckduckgo.com/html/?q={search_terms}

    正如其他回答者所提到的,DuckDuckGo 的 limited search API 的 URL 是

    http://api.duckduckgo.com/?q=x&format=json
    

    x 是您要查找的搜索词。

    然而,请注意这不是一个完整的搜索 API。正如DuckDuckGo's API page 提到的,

    但是,此 API 不包含我们的所有链接。也就是说,它不是一个完整的搜索结果 API,也不是一种将 DuckDuckGo 结果输入您的应用程序的方法,而不仅仅是我们的即时答案。由于we generate our search results 的方式,很遗憾,我们无权完全联合我们的结果。出于同样的原因,我们不能允许在没有品牌的情况下构建我们的结果。请参阅our partnerships page 了解有关指南的更多信息并与我们联系。

    这是即时回答 API,而不是完整的结果 API。但是,其中有一些 Web 链接,例如官方网站。

    所以为了你所说的目的

    只需提交字符串查询(相当于在搜索栏中手动输入)并保存第一个结果的 URL(如果有的话)。

    api.duckduckgo.com 不会得到你想要的。

    您最好的选择可能是只截取非 JS 网页版 DuckDuckGo:

    https://duckduckgo.com/html/?q=x
    

    寻找带有div.result 或div.web-result 之类的选择器的元素。

    【讨论】:

    • 谢谢,所以最后三行在链接问题的答案中进行了说明?
    • @Nesa 是的!特别是如果你有兴趣在 python 中进行屏幕抓取。
    • 感谢经验丰富的提示。想解释一下使用 JSON 参数的好处吗?
    • JSON 参数只是告诉 API 以 JSON 格式返回结果。我相信唯一的其他选择是format=xml。它可能会在没有明确要求的情况下给你一个 JSON 响应,但如果是这样,它是一个未记录的功能,可能会在没有通知的情况下更改。
    • 我在这里为图像搜索实现了一些东西,这与实现非常相似 - github.com/deepanprabhu/duckduckgo-images-api
    【解决方案2】:

    只需更改您想要搜索的任何内容。这将以 JSON 格式输出结果

    https://api.duckduckgo.com/?q=<your search string>&format=json&pretty=1&no_html=1&skip_disambig=1
    

    我想这就是你想要的

    【讨论】:

    • 它不再工作或者它没有给出许多查询的结果我可以确认。
    • @VivekSancheti 你能告诉我你尝试搜索什么吗,我尝试的一切都是以 JSON 格式返回结果
    【解决方案3】:

    www.api.duckduckgo.com/?q=Search&format=json&pretty=1

    示例: http://api.duckduckgo.com/?q=DuckDuckGo&format=json&pretty=1

    响应是一个JSON Object,可以找到第一个链接的地址:

    response.Results[0].FirstURL
    

    您可以通过将回复放入 https://jsonformatter.curiousconcept.com/ 来找出答案

    希望它有所帮助:)

    【讨论】:

      猜你喜欢
      • 2021-06-28
      • 2021-04-04
      • 1970-01-01
      • 2012-07-28
      • 1970-01-01
      • 1970-01-01
      • 2019-09-10
      • 2016-07-31
      • 1970-01-01
      相关资源
      最近更新 更多