发送请求

/v1/search 接受的查询与您在搜索框中输入的完全相同,另外再加几个参数。它同时支持 GET 和 POST,两种方式的参数相同。

参数

名称默认值含义
query必填搜索字符串。语法与网站相同,参见查询语法。
page1从 1 开始计数。
per_page100不超过您套餐的行数上限,page × per_page 也是如此:套餐覆盖查询的前 N 行,翻页不能越过这一范围(400 page_too_deep);/v1/account 中以 max_per_page 给出该值。
snippets关闭设为 1 时返回匹配的文本。消耗代码片段配额。
formatjson六种格式之一,参见响应格式。
columns取决于格式以逗号分隔,取自 domain、url、rank、ranked、snippets。
delimiter; / 制表符用于 csv 和 tsv。
header关闭设为 1 时,在 csv 和 tsv 中加入表头行。

GET

curl -H "Authorization: Bearer $KEY" \
     "https://api.publicwww.com/v1/search?query=%22angular.min.js%22&page=2&per_page=50"

请记得对查询进行 URL 编码。引号、斜杠和 + 都会影响结果。

POST

参数相同,以 JSON 请求体发送。查询较长或包含多个短语时请使用这种方式:URL 中的多行查询,早在服务器介意之前,就会先触及代理和客户端的长度限制。

curl https://api.publicwww.com/v1/search \
     -H "Authorization: Bearer $KEY" \
     -H "Content-Type: application/json" \
     -d '{"query": ["\"angular.min.js\"", "\"bootstrap.min.css\""],
          "per_page": 50,
          "snippets": true}'

短语数组表示所有短语都要匹配,效果与在 query 字符串中用换行分隔它们完全相同。在上面的示例中,含有第一个短语的网站有 278 个,同时含有两个短语的有 99 个。

支持 JSON 类型:查询字符串中需要写 1 的地方,这里可以写 true。同一参数同时出现在 URL 和请求体中时,以请求体为准。

响应

字段含义
total整个索引中匹配的网站数。这是实际计数,而非估算值。
total_pagestotal 除以 per_page,向上取整。
returned本页实际包含的行数。
truncated是否有结果因您套餐的可见排名位次限制而被移除。
took_ms搜索耗时,单位为毫秒。
results结果行。

结果行

字段含义
domain网站。
url找到匹配内容的页面;对于 depth: 搜索,它不一定是首页。
rank排名位置,数值越小越热门。网站没有排名时为 null。
ranked当且仅当 rank 为 null 时为 false。
snippets仅在 snippets=1 时返回。最多五组 {"text", "match"},其中 match 是匹配到的内容,text 是该内容及其上下文。

分页与批量获取

可以用 page 逐页获取,也可以用较大的 per_page 一次获取全部结果,上限为 /v1/account 中的 max_per_page,付费套餐为一百万。没有单独的导出接口;响应边生成边输出,因此一百万行结果并不需要同时全部保存在内存中。

下一篇 响应格式