java 单机接口限流处理方案
286
2022-06-06
首先,什么是熊掌号?
百度官方对熊掌号的解释是:
“服务于百度移动搜索,是百度连接内容和服务的官方帐号。熊掌号基于开放的理念,连接站长、自媒体、应用开发者、商家等多元化的内容提供者;同时也连接文章、视频、问答、商家服务等多元化的内容形态,实现“海纳百川,汇聚万物”。同时,熊掌号在用户与内容服务提供者之间建立双向互动能力,让用户能够关注喜爱的内容,获得更新动态,与内容服务提供者进行有效的交流;而我们也为内容服务提供者赋能更多工具支持,让他们能够触达和跟进自己的用户,更好的开展运营活动,收获更多粉丝用户,并提升品牌形象。“
其实,我认为熊掌号就是百度对标微信公众号的产品,是一个以内容为核心的平台,代表百度从搜索向内容分发的转变。而对于网站来说,将网站和熊掌号捆绑在一起,就能获得更大的搜索展现机会(据说2018年开始百度的流量将全面向熊掌号倾斜)。所以对于想从百度获得流量的站长,熊掌号是绝对不可忽视的一环。
废话少说,进入正题。首先到https://ziyuan.baidu.com/xzh/home/index,用百度账号登录,然后进行申请,通过审核就可以将你的网站内容提交到熊掌号了。
提交数据分为两种:api提交和手动提交。手动提交就不用说了,将url复制到输入框就可以提交了,每日最多500条。
这种方式对于页面少的网站可行,对于页面几千几万的网站,可就是噩梦了。对于大量的页面提交,可以采用api来批量提交。
熊掌号提供了几种api提交方式:
我们就采用php来提交,这样可以批量提交url。先切换到历史内容接口。
看看官方给出的示例代码:
$urls = array( 'http://example.com/1.html', 'http://example.com/2.html',); $api = 'http://data.zz.baidu.com/urls?appid=xxxxxx&token=xxxxxx&type=batch'; $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;
代码构建了一个url的array,然后通过curl方法post请求熊掌号的接口,请求url参数中带上你的熊掌号appid和token(请求url直接到示例里复制就行了,不用费心自己去找appid和token了)。
主要是构建url的array,如果手动填入网站所有的url,那和手动提交url没有区别,几乎非人力所能完成。好在网站的url都是有一定规律的,我们可以构造一个for循环来批量将url加入array。假如你的某一内容页url是这样的:http://yourdomain.com/cotent/id/15535,那么除最后的数字外,前面的url都是固定的,只有最后的数字是变化的。我们可以利用这一点,构造一个for循环批量将url写入array,再向接口提交。如下代码:
$i=1; $urls = array(); for ($i=1; $i<=2000; $i++) { $urls[$i] = "http://yourdomain.com/cotent/id/" .$i; }
这样就批量将url写入数组了,注意,接口有限制,一次最多提交2000条url。
完整代码如下:
$i=1; $urls = array(); for ($i=1; $i<=2000; $i++) { $urls[$i] = "http://yourdomain.com/cotent/id/" .$i; } $api = 'http://data.zz.baidu.com/urls?appid=1584467550610009&token=BUNenc44VWLOYva5&type=batch'; $ch = curl_init(); //curl_setopt($ch,CURLOPT_PROXY,'127.0.0.1:8888');//设置代理服务器 $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文件再运行这个文件,会在浏览器得到一个返回页面,如果得到以下返回Json:{"success_batch":2000,"remain_batch":4930000}
,就说明代码提交成功了。
这里,success_batch表示此次成功提交的数据条数,remain_batch表示还剩多少条可以提交。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~