查询百度搜索资源平台API推送配额可以直接推送然后获取返回的结果得到的我们的百度搜索资源平台API推送配额。
如果不想暂用托送额度查询的话,可以直接把推送一个星号*作为URL推送,那么会返回推送的结果,可以看到推送额度,这个*号会被当做不合规的URL,不会暂用我们的推送额度。
百度推送API结果说明
通过API地址推送后会返回json格式的数据,其中remain字段的值是当前剩余推送额度,详细解析可以看下面信息:
推送成功
状态码为200,可能返回以下字段:
字段 | 是否必选 | 参数类型 | 说明 |
---|---|---|---|
success | 是 | int | 成功推送的url条数 |
remain | 是 | int | 当天剩余的可推送url条数 |
not_same_site | 否 | array | 由于不是本站url而未处理的url列表 |
not_valid | 否 | array | 不合法的url列表 |
成功返回示例:
{
"remain":99998,
"success":2,
"not_same_site":[],
"not_valid":[]
}
推送失败
状态码为4xx,返回字段有:
字段 | 是否必传 | 类型 | 说明 |
---|---|---|---|
error | 是 | int | 错误码,与状态码相同 |
message | 是 | string | 错误描述 |
失败返回示例:
{
"error":401,
"message":"token is not valid"
}
php推送查询额度示例
$urls = array(
'*',
);
$api = 'http://data.zz.baidu.com/urls?site=https://www.linfengnet.com&token=你的token';
$ch = curl_init();
$options = array(
CURLOPT_URL => $api,
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POSTFIELDS => implode("\n", $urls),
CURLOPT_HTTPHEADER => array('Content-Type: text/plain'),
);
curl_setopt_array($ch, $options);
$result = curl_exec($ch);
echo $result;
注:这个PHP示例是百度资源平台官方的,我只不过把URL改成了*号。
你需要把网址https://www.linfengnet.com和你的token这两个部分修改为你自己的信息。
Python批量查询额度示例
# -*- coding: utf-8 -*-
import requests
def link_push(_host, _token, timeout=5, encoding='utf-8', retires=3):
"""
网页下载
:param _host: 推送域名
:param _token: 域名token
:param timeout: 超时等待时长
:param encoding: 编码
:param retires: 超时重试次数
:return: 推送结果
"""
ts_url = f'http://data.zz.baidu.com/urls?site={_host}&token={_token}'
try:
r = requests.post(ts_url, '*', timeout=timeout)
except requests.Timeout:
if retires <= 1:
print(f'连接超时 尝试重新推送')
return link_push(ts_url, '*', retires - 1)
else:
print('连接超时 已重试三次 请检查网络问题')
return None
except requests.RequestException as e:
print(f'推送失败, 错误详情: \n{e}')
return None
else:
r.encoding = encoding
_result = r.json()
return _result
def main(host, token):
"""
启动推送
:param host: 推送域名
:param token: 百度token
:return: None
"""
result = link_push(host, token)
if result is None:
print('推送失败')
if 'error' in result:
print('推送结果: 失败\n'
f' 错误码: {result.get("error")}\n'
f' 错误描述: {result.get("message")}'
, )
else:
print('推送结果: 成功\n'
f' 成功条数: {result.get("success")}\n'
f' 剩余可推送条数: {result.get("remain")}\n'
f' 非本站url而未处理的url: {result.get("not_same_site")}\n'
f' 不合法的url: {result.get("not_valid")}'
)
print('推送完毕')
if __name__ == '__main__':
query_domain = ['domain1', 'domain2']
token = 'your token'
for domain in query_domain:
main(query_domain, token)
注:可以批量查询一个账号下的多个站点额度,需要把query_domain = [‘domain1’, ‘domain2’]之中的domain*替换为你对应的域名,英文逗号分隔,英文引号包裹…注意保持原有格式。your token替换为你的token。
相关资料
什么是快速抓取
站长可通过快速抓取工具,向百度spider主动推送资源,缩短爬虫发现网站链接的时间,通过快速抓取提交的资源将优先抓取,对是否收录及线上展现效果不保证。
快速抓取资源如何提交
快速抓取包含手动提交和API提交两种方式,使用API提交时请使用平台提供的最新接口进行推送。
百度搜索资源平台工具截图
(1)手动提交
(2)API提交
更多推送相关信息(效果、示例、字段说明等)可以前往百度搜索资源平台查看:
顺带说下百度现在取消了很多站点的sitemap提交权限,那我们提交资源复辅助收录的手段又少了…并且我知道不少的优质的站点都被判定成了低质量站点,emmm…