给 Python 用的网页搜索 API
官方 Python 客户端覆盖公开 API 的全部端点。认证、超时、限流重试、以及 deepcrawl 需要的轮询都由它接管,你的代码只需要关心搜索本身。
安装 — bashpip install search1apiexport SEARCH1API_API_KEY="your-api-key"
认证、超时、重试和 deepcrawl 轮询都已经写好了,你的代码只需要关心搜索本身。
search、news、crawl、screenshot、sitemap、trending、extract、deepcrawl。
认证、积分、参数校验、限流、服务端故障各有独立类型。
AsyncSearch1API 为 asyncio 提供同样的操作。
覆盖
search / news / crawl / screenshot / extract / deepcrawl
在 Python 里搜索网页
网页搜索 API 返回的是程序能直接读的结构化结果——每条包含标题、链接和正文——而不是一个还要你自己解析的 HTML 页面。这一点在 Python 里尤其重要,因为替代方案是去爬搜索结果页,然后每次页面结构一变就重写一遍解析器。Search1API 通过一个端点、覆盖十几个来源返回 JSON,摘要不够时还能把靠前结果的完整正文放进同一个响应里。
客户端替你处理的事
一个客户端覆盖所有端点
搜索、新闻、抓取、截图、站点链接、热榜、结构化提取、deepcrawl 都是同一个对象上的方法,覆盖公开 OpenAPI 契约。
可以分支判断的错误
认证、积分、参数校验、not found、限流、服务端故障各有独立的错误类型,都带着状态码和解析后的响应体。
只在安全的地方重试
30 秒超时,429 和临时性 5xx 自动重试两次。认证、支付、参数校验错误不重试,deepcrawl 任务的启动也不自动重试。
需要时可以异步
AsyncSearch1API 为 asyncio 提供同样的操作,可以当作异步上下文管理器使用。
二进制响应保持原样
截图返回的是图片字节而不是 JSON;客户端会把 content type 和 request ID 和响应体一起保留下来。
deepcrawl 不用自己写轮询
一次调用启动任务并等它完成。如果任务 ID 需要持久化,也有独立的 start、status、wait 方法。
快速开始
在控制台创建 key,设进环境变量,然后就能搜。传入 crawl_results,靠前的结果会在同一次调用里连整页正文一起返回。
search.py — pythonfrom search1api import Search1APIclient = Search1API() # reads SEARCH1API_API_KEYresponse = client.search("latest AI agent frameworks",max_results=10,crawl_results=3,)for result in response["results"]:print(result["title"], result["link"])
不用手写轮询的 deepcrawl
抓取整个站点通常意味着:启动任务、轮询状态、自己处理等待。客户端把这些收进一次调用,直接把完成后的归档 URL 交给你。
deepcrawl.py — pythonresult = client.deepcrawl("https://example.com", type="all")print(result["zipUrl"])
覆盖哪些端点
不管从哪条路调用,消耗的积分都一样:搜索或新闻各 1 积分,每成功取回一个页面再加 1 积分。
大家用它做什么
把实时网页上下文和内部索引一起摄入的 RAG 管线。
跨多个来源查询、把结论写进文件的调研脚本。
盯着某个话题的新闻、定时发简报的任务。
读取结果背后页面正文而不是只拿摘要的数据采集。
按你所用框架把客户端包一层做成的 agent 工具。
常见问题
在 Python 里怎么搜索网页?
装上 search1api 包,把 SEARCH1API_API_KEY 设进环境变量,然后调用 client.search("你的查询")。返回是一个包含 results 列表的 dict,每条带标题、链接和正文。不用解析 HTML,也不用爬。
支持异步代码吗?
支持。AsyncSearch1API 为 asyncio 提供同样的操作,并且可以当异步上下文管理器用,不需要线程池就能接进已有的事件循环。
碰到限流会怎样?
429 会自动重试两次,临时性 5xx 同理。认证、支付、参数校验类错误会直接抛出而不重试——重试这些也解决不了问题。
可以用哪些搜索引擎?
Google、Bing、DuckDuckGo、Yahoo、GitHub、arXiv、Reddit、X、YouTube、Wikipedia、IMDb、微信公众号、哔哩哔哩、百度、360、夸克。在请求里用 search_service 指定即可。
有免费额度吗?
新账户免费赠送 100 积分且无需绑卡,相当于 100 次搜索。搜索或新闻各 1 积分,每成功取回一个页面再加 1 积分。
了解更多
开始在 Python 里搜索
两行装好,100 个免费积分够你试出来,不用绑卡。