{"id":1816,"date":"2023-08-07T22:51:30","date_gmt":"2023-08-07T14:51:30","guid":{"rendered":"https:\/\/www.aqwu.net\/wp\/?p=1816"},"modified":"2023-08-07T22:52:00","modified_gmt":"2023-08-07T14:52:00","slug":"%e4%bd%bf%e7%94%a8-duckduckgo-api-%e8%bf%9b%e8%a1%8c%e6%90%9c%e7%b4%a2","status":"publish","type":"post","link":"https:\/\/www.aqwu.net\/wp\/?p=1816","title":{"rendered":"\u4f7f\u7528 DuckDuckGo API \u8fdb\u884c\u641c\u7d22"},"content":{"rendered":"\n<p>\u5982\u679c\u9700\u8981\u641c\u7d22\u5f15\u64ce\u83b7\u53d6\u5230\u641c\u7d22\u7684\u5185\u5bb9\uff0c\u53c8\u4e0d\u60f3\u652f\u4ed8\u5176\u4ed6\u8d39\u7528\uff0c\u540c\u65f6\u8981\u6c42\u8fd4\u56de\u7684\u683c\u5f0f\u4e3ajson\u683c\u5f0f\uff0c\u5219\u53ef\u4ee5\u4f7f\u7528 DuckDuckGo API<\/p>\n\n\n\n<p>\u4ee3\u7801\u5982\u4e0b\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code has-small-font-size\"><code>import argparse\nimport json\nimport time\nfrom itertools import islice\nfrom typing import Union\n\nfrom duckduckgo_search import DDGS\n\nDUCKDUCKGO_MAX_ATTEMPTS = 3\n\ndef safe_duckduckdo_results(results: Union&#91;str, list]) -> str:\n    \"\"\"\n        Return the results of a Google search in a safe format.\n    Args:\n        results (Union&#91;str, list]): The search results.\n    Returns:\n        str: The results of the search.\n    \"\"\"\n    if isinstance(results, list):\n        safe_message = json.dumps(\n            &#91;result.encode(\"utf-8\", \"ignore\").decode(\"utf-8\") for result in results]\n        )\n    else:\n        safe_message = results.encode(\"utf-8\", \"ignore\").decode(\"utf-8\")\n    return safe_message\n\ndef web_search(query: str, num_results: int = 8) -> str:\n    \"\"\"Return the results of a Google search\n    Args:\n        query (str): The search query.\n        num_results (int): The number of results to return.\n    Returns:\n        str: The results of the search.\n    \"\"\"\n    search_results = &#91;]\n    attempts = 0\n\n    while attempts &lt; DUCKDUCKGO_MAX_ATTEMPTS:\n        if not query:\n            return json.dumps(search_results)\n\n        results = DDGS().text(query)\n        search_results = list(islice(results, num_results))\n\n        if search_results:\n            break\n\n        time.sleep(1)\n        attempts += 1\n\n    results = json.dumps(search_results, ensure_ascii=False, indent=4)\n    return safe_duckduckdo_results(results)\n\n\nif __name__ == \"__main__\":\n    parser = argparse.ArgumentParser(description='Web search using DuckDuckGo')\n    parser.add_argument('query', type=str, help='The search query')\n    parser.add_argument('--num_results', type=int, default=8, help='The number of results to return')\n    args = parser.parse_args()\n\n    results = web_search(args.query, args.num_results)\n    results = json.loads(results)\n    print(results)\n<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>\u5982\u679c\u9700\u8981\u641c\u7d22\u5f15\u64ce\u83b7\u53d6\u5230\u641c\u7d22\u7684\u5185\u5bb9\uff0c\u53c8\u4e0d\u60f3\u652f\u4ed8\u5176\u4ed6\u8d39\u7528\uff0c\u540c\u65f6\u8981\u6c42\u8fd4\u56de\u7684\u683c\u5f0f\u4e3ajson\u683c\u5f0f\uff0c\u5219\u53ef\u4ee5\u4f7f\u7528 DuckD [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[37,17],"tags":[242,314],"class_list":["post-1816","post","type-post","status-publish","format-standard","hentry","category-samples","category-infonews","tag-chatgpt","tag-openai-api"],"views":4688,"jetpack_sharing_enabled":true,"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/www.aqwu.net\/wp\/index.php?rest_route=\/wp\/v2\/posts\/1816","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.aqwu.net\/wp\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.aqwu.net\/wp\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.aqwu.net\/wp\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.aqwu.net\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1816"}],"version-history":[{"count":1,"href":"https:\/\/www.aqwu.net\/wp\/index.php?rest_route=\/wp\/v2\/posts\/1816\/revisions"}],"predecessor-version":[{"id":1817,"href":"https:\/\/www.aqwu.net\/wp\/index.php?rest_route=\/wp\/v2\/posts\/1816\/revisions\/1817"}],"wp:attachment":[{"href":"https:\/\/www.aqwu.net\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1816"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.aqwu.net\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1816"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.aqwu.net\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1816"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}