网站上线以后如果是做百度排名,那么紧跟着就要在百度搜索资源平台做主动提交、自动提交、移动适配等操作,那么主动提交如何通过java实现,将网站新产生的链接实时提交给百度蜘蛛加速收录呢?
1.使用主动推送功能会达到怎样效果
及时发现:可以缩短百度爬虫发现您站点新链接的时间,使新发布的页面可以在第一时间被百度收录
保护原创:对于网站的最新原创内容,使用主动推送功能可以快速通知到百度,使内容可以在转发之前被百度发现
2.java实现主动提交
/**
* 百度链接实时推送
* @param Parameters 提交的链接数组:
* http://www.example.com/1.html
* http://www.example.com/2.html
* @return
*/
public static String postTuiSong(String url,String[] Parameters){
String PostUrl=url;
if(null==PostUrl || null==Parameters || Parameters.length==0){
return null;
}
String result = "";
PrintWriter out = null;
BufferedReader in = null;
try {
//建立URL之间的连接
URLConnection conn = new URL(PostUrl).openConnection();
//HttpURLConnection conn = (HttpURLConnection)new URL(PostUrl).openConnection();
//if(conn.getResponseCode()!=200){
//设置通用的请求属性
conn.setRequestProperty("User-Agent", "curl/7.12.1");
conn.setRequestProperty("Host", "data.zz.baidu.com");
conn.setRequestProperty("Content-Type", "text/plain");
conn.setRequestProperty("Content-Length", "83");
//发送POST请求必须设置如下两行
conn.setDoInput(true);
conn.setDoOutput(true);
//获取conn对应的输出流
out = new PrintWriter(conn.getOutputStream());
//发送请求参数
String param = "";
for(String s : Parameters){
param += s+"\n";
}
out.print(param.trim());
//进行输出流的缓冲
out.flush();
//通过BufferedReader输入流来读取Url的响应
in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String line;
while((line=in.readLine()) != null){
result += line;
}
//}
} catch (Exception e) {
System.out.println("post推送出现异常!"+e);
e.printStackTrace();
} finally{
try{
if(out != null){
out.close();
}
if(in != null){
in.close();
}
}catch(IOException ex){
ex.printStackTrace();
}
}
System.out.println("post推送结果:"+result);
return result;
}
}
其中url为百度提供的主动提交链接
parameters为提交的数据数组集合,比如我们每次只提交一条链接就这样写:
long id=12;
String [] parameter = new String[1];
parameter[0]="https://www.citywy.com/know/"+id+".htm";
postTuiSong(parameter);