旧版导出 URL
在推出 API 之前,下载结果的方式是在普通搜索 URL 后加上 ?export= 和密钥。这些 URL 至今仍然可用,行为与以往完全一致,逐字节相同。它们不会被下线。
https://publicwww.com/websites/%22angular.min.js%22/?export=csv&key=YOUR_KEY
export= | 返回内容 |
|---|---|
urls | 每行一个 URL。 |
csv | domain;rank |
csvu | url;rank |
csvsnippets | domain;rank;snippet |
csvsnippetsu | url;rank;snippet |
cluster | 将结果保存为域名集,而不是下载。 |
&delimiterColumns= 和 &delimiterSnippets= 用于更改分隔符,https://publicwww.com/profile/api_status.xml 以 XML 报告当日用量。请在 Authorization: Bearer <your api key> 请求头中传递密钥;旧的 ?key= 写法仍然可用,但已不推荐使用,因为地址中的密钥会留在浏览器历史记录和服务器日志中。
为什么它们是独立的
这些 URL 是兼容层,正因为把兼容性留在这里,API 才能成为一个规范的现代 API。它们的输出由一项每次改动都会运行的测试逐字节锁定,因此多年前编写的脚本仍能照常解析。它们不会再增加任何新功能。
迁移脚本
最接近的对应关系:
| 旧版 | 新版 |
|---|---|
?export=csv | format=csv |
?export=csvu | format=csv&columns=url,rank |
?export=urls | format=txt |
?export=csvsnippets | format=csv&snippets=1 |
?export=csvsnippetsu | format=csv&columns=url,rank,snippets&snippets=1 |
&key= | Authorization: Bearer |
&delimiterColumns= | delimiter= |
| URL 路径中的查询 | query=,或 JSON 请求体 |
api_status.xml | /v1/account |
各列一一对应,因此解析器通常无需修改。而那些确实发生的变化,都值得拥有:
- 密钥无效时返回带 JSON 响应体的
401;旧版则返回200,并在本该是结果行的位置写上Wrong API key。 - 请求过快时立即返回带
Retry-After的429,而不是占住连接长达半分钟后再拒绝。 - 配额用完会返回错误。在旧版 URL 上,这会悄悄将您降到免费版的限制并返回更少的行,响应中却没有任何提示。
- 不完整的结果会通过
X-Truncated标出。 - 支持分页,客户端无需下载全部结果就能查看前二十条。