发布时间:2018-04-21作者:laosun阅读(2234)
Java 百度链接提交推送:链接提交工具是网站主动向百度搜索推送数据的工具,本工具可缩短爬虫发现网站链接时间,网站时效性内容建议使用链接提交工具,实时向搜索推送数据。本工具可加快爬虫抓取速度,无法解决网站内容是否收录问题。百度搜索资源平台为站长提供链接提交通道,您可以提交想被百度收录的链接,百度搜索引擎会按照标准处理,但不保证一定能够收录您提交的链接。
使用说明
1. 链接提交工具是网站主动向百度搜索推送数据的工具,本工具可缩短爬虫发现网站链接时间,网站时效性内容建议使用链接提交工具,实时向搜索推送数据。本工具可加快爬虫抓取速度,无法解决网站内容是否收录问题
2. 百度搜索资源平台为站长提供链接提交通道,您可以提交想被百度收录的链接,百度搜索引擎会按照标准处理,但不保证一定能够收录您提交的链接。
import java.util.List; import org.apache.commons.lang.StringUtils; import org.apache.log4j.Logger; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.google.common.collect.Lists; /** * 百度链接推送 * @author sun */ public class PushUrlToBaidu implements Runnable { protected static final Logger LOG = Logger.getLogger(PushUrlToBaidu.class); public void run() { //TODO 推送开关 LOG.info("开始执行百度推送任务..."); processExecute(); } /** * 执行任务 * @author sun * @date 2018年3月25日 下午11:31:13 */ private void processExecute() { // 未了避免百度的重复不友好提交,所以单独创建了一个表,把需要同步的文章全部放入到这个表中。 //TODO 查询是否有新发布的文章,若有,将新发布的文章存入t_XXX表中 //TODO 检测t_XXX表中所有未推送的链接 List<String> urlList = Lists.newArrayList(); //TODO 将所有未提交的链接全部存入list,等待一次性提交 // 开始执行百度推送 String result = com.sunjs.kit.HttpKit.post(com.sunjs.kit.HttpKit.baidu_add_url, urlList.toArray()); LOG.info("提交链接完成,开始解析json串:"+result); if(StringUtils.isNotEmpty(result)){ JSONObject jsobj = (JSONObject) JSON.parse(result); if(jsobj.getJSONArray("error")!=null){ //推送失败 LOG.error(result); }else{ if(jsobj.getJSONArray("not_same_site")!=null){ JSONArray jsonArray = jsobj.getJSONArray("not_same_site"); Object[] notSameSite = jsonArray.toArray(); if(notSameSite!=null && notSameSite.length>0){ for(Object u:notSameSite){ urlList.remove(u.toString()); } } } if(jsobj.getJSONArray("not_valid")!=null){ JSONArray jsonArray = jsobj.getJSONArray("not_same_site"); Object[] notValid = jsonArray.toArray(); if(notValid!=null && notValid.length>0){ for(Object u:notValid){ urlList.remove(u.toString()); } } } if(urlList!=null && urlList.size()>0){ for(String url:urlList){ //update 表,更新推送成功的标识 } } LOG.info("本次成功推送"+urlList.size()+"条链接"); } }else{ LOG.error("百度推送返回结果为null"); } } }
mysql 推送表结构:
CREATE TABLE `t_XXX` ( `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT, `article_id` int(10) UNSIGNED NULL DEFAULT NULL COMMENT '文章id,可为空', `url` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '链接', `push_baidu` int(1) NOT NULL DEFAULT 0 COMMENT '0:false 1:true', `push_time` timestamp(0) NULL DEFAULT CURRENT_TIMESTAMP COMMENT '推送时间', `add_time` timestamp(0) NULL DEFAULT CURRENT_TIMESTAMP COMMENT '添加时间', PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = 'blog 搜索引擎链接表,推送使用' ROW_FORMAT = Compact;
版权属于: 技术客
原文地址: https://www.sunjs.com/article/detail/e0d52913d21f43e1a3ee76c3558e62a8.html
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。