首页 > 其他分享 >bing官方api搜索引擎

bing官方api搜索引擎

时间:2024-08-02 10:41:52浏览次数:10  
标签:status search bing 搜索引擎 json api import post

bing官方api搜索引擎

1. bing API说明

微软 Bing 的搜索 API 使得开发者能够将 Bing 的搜索能力集成到自己的应用中,包括对网页、图片、新闻、视频的搜索,以及提供了实体搜索和视觉搜索的功能。这些 API 支持安全、无广告且能够根据地理位置提供相关信息的搜索结果。Bing Web Search API v7 允许用户从全球范围内的数十亿个网页文档中检索信息。

2. 秘钥申请

参考Langchain-Chatchat3.1——搜索引擎bing与DuckDuckGo

3. 官方文档地址

官方文档

4. coding案例

下面是一个bing的新闻搜索按理,采用fastapi进行快速部署的服务

# -*- coding: utf-8 -*-
from fastapi import FastAPI, Request
from fastapi.middleware.cors import CORSMiddleware
import uvicorn
import json
from datetime import datetime
import requests
import re



app = FastAPI()  # 创建API实例
app.add_middleware(
    CORSMiddleware,
    # 允许跨域的源列表,例如 ["http://www.example.org"] 等等,["*"] 表示允许任何源
    allow_origins=["*"],
    # 跨域请求是否支持 cookie,默认是 False,如果为 True,allow_origins 必须为具体的源,不可以是 ["*"]
    allow_credentials=False,
    # 允许跨域请求的 HTTP 方法列表,默认是 ["GET"]
    allow_methods=["*"],
    # 允许跨域请求的 HTTP 请求头列表,默认是 [],可以使用 ["*"] 表示允许所有的请求头
    # 当然 Accept、Accept-Language、Content-Language 以及 Content-Type 总之被允许的
    allow_headers=["*"],
    # 可以被浏览器访问的响应头, 默认是 [],一般很少指定
    # expose_headers=["*"]
    # 设定浏览器缓存 CORS 响应的最长时间,单位是秒。默认为 600,一般也很少指定
    # max_age=1000
)

def bing_news_search(search_term):

    subscription_key = "bing秘钥"

    search_url = "https://api.bing.microsoft.com/v7.0/news/search"
    headers = {"Ocp-Apim-Subscription-Key" : subscription_key}
    params  = {"q": search_term, "textDecorations": True, "textFormat": "HTML"}

    response = requests.get(search_url, headers=headers, params=params)
    status_code = response.status_code

    response.raise_for_status()
    search_results = response.json()
    return status_code,search_results["value"][0]


@app.post("/news_search")
async def create_item(request: Request):
    json_post_raw = await request.json()
    json_post = json.dumps(json_post_raw)
    json_post_list = json.loads(json_post)
    prompt = json_post_list.get('search')
    status_code,res = bing_news_search(prompt)

    now = datetime.now()
    time = now.strftime("%Y-%m-%d %H:%M:%S")

    answer = {
        "data": res,
        "status": status_code,
        "time": time
    }
    return answer


if __name__ == '__main__':
    uvicorn.run(app, host='0.0.0.0', port=9009, workers=1)

标签:status,search,bing,搜索引擎,json,api,import,post
From: https://www.cnblogs.com/hcxss/p/18338201

相关文章

  • Langchain-Chatchat3.1——搜索引擎bing与DuckDuckGo
    Langchain-Chatchat3.1——搜索引擎bing与DuckDuckGo1.前提是咱们的Chatchat服务一起部署好了,可以参考Langchain-Chatchat3.1版本docker部署流程——知识库问答2.搜索引擎DuckDuckGo:该搜索引擎不需要key,但是需要全球上网服务,挂代理。pipinstall-Uduckduckgo_search......
  • Python 学习中的 API,如何调用API ?
    1.1API的定义API,全称是ApplicationProgrammingInterface(应用程序编程接口)。它是一组定义好的协议和工具,用于在软件应用程序之间进行通信。API可以简化软件开发,使不同的应用程序能够相互协作。它是软件开发中非常关键的组成部分,因为它提供了一种标准化的方式来访问某些功能,......
  • Apifox 7月更新|SAML 单点登录、迭代分支优化、Markdown 历史记录、搜索能力提升
      1新增「组织」架构引入了全新的「组织」概念,提供更灵活的管理结构。企业可以创建「组织」,并在组织内设立多个「团队」,便于大中型企业能够更有效地组织和管理其项目及人员。通过这种方式,企业可以根据自身的组织结构和业务需求,灵活地分配资源和权限,提高整体的协作效率......
  • PHP文档识别接口,文字识别、OCR API
    在数字化浪潮的前沿下,文档识别接口如同一位智慧的在线“编目家”,随时随地工作在浩瀚的字符海洋中。想象一下,当我们面对堆积如山的纸质扫描文档,各种印刷文字以及文本图片时,通过文档识别功能,仅需导入图片,便能快速、精准地让静默的文字跃然于屏,化作清晰可读、可编辑、可归类、可......
  • prometheus 通过 API 接口删除指定数据
    prometheus通过API接口删除指定数据curl-XPOST-g'http://127.0.0.1:9090/api/v1/admin/tsdb/delete_series?start=1660723273&end=1667894433&match[]=node_cpu_seconds_total{mode="idle"}'linux可以使用date +%s获得当前的时间戳,可以使用date -d ......
  • 一个 API,用于读取带有特定描述的未读邮件,但在读取时删除标签 UNREAD
    我有一个Python脚本,它与GmailAPI交互,并搜索来自特定电子邮件地址、具有特定描述的未读邮件。但我想要它,所以当它读取邮件时,它会删除UNREAD标签,这样当我再次运行脚本时它就不会检测到它。from__future__importprint_functionimportpickleimportos.pathfromgoo......
  • 如何调试 NCO/Meteocean-API 代码以获得大气数据?
    我目前正在尝试利用Python中的meteocean-api来下载和使用NORA3数据。这在后台使用nco包来处理文件。我下载了它及其所有依赖项(包括nco),只需使用:condainstall-cconda-forgemetocean-api这给我的计算机带来了很多麻烦,包括需要将sqlite3DLL重新包含回正确的位......
  • Binance API:自动化机器人批量大小问题
    我正在尝试在Python上可用的BinanceAPI上构建自己的机器人。我目前正在尝试的是根据我的Binance账户中可用的金额/BTC来下订单购买/出售BTC。然后,代码应该将这笔现金转换为BTC并发出买入/卖出订单:iforder_book[-1]=="BUY":forbalanceinaccount_i......
  • Tensorflow 对象检测 API Mobilenet SSD 输入图像大小错误
    我正在尝试使用MobileNetSSDv1fpn640x640使用Tensorflow对象检测API来实现对象检测算法。但我的输入图像大小为1024x25。但是当我运行训练脚本时,它给出了类似“输入尺寸必须大于33”的错误。我想知道使用MobilenetSSD时与输入图像大小相关的约束是什么,以及是......
  • Python中FastAPI项目使用 Annotated的参数设计
    在FastAPI中,你可以使用PEP593中的Annotated类型来添加元数据到类型提示中。这个功能非常有用,因为它允许你在类型提示中添加更多的上下文信息,例如描述、默认值或其他自定义元数据。FastAPI支持Annotated类型,这使得你可以为路径操作函数的参数提供额外的元数据,例如依赖项、查询参......