百度站長平臺提交連結-主動推送
作為站長,為了提高搜尋率,也就是讓搜尋引擎更容易的發現自己的網站,我們可以向相應的搜尋引擎連結提交的方式,告知搜尋引擎。
下面主要展示像百度主動連結提交的方式。
1.百度站長入口
http://zhanzhang.baidu.com/linksubmit/index
網站提高了很多站長所需的東西。你一看便知。
2.登入後:網站抓取——>連結提交
你會發現,百度提供了多種連結提交的方式:
自動提交:
主動推送(實時)、自動推送、 sitemap
手動提交:。
下面主要演示通過java程式碼進行主動推送。
第一步:主動推送介面
來到主動推送頁面,我們可以看到如下頁面展示:
第二步:如何推送
給出的Post推送示例如下:
2)post推送示例
-------------
POST /urls?site=www.58.com&token=edk7ychrEZP9pDQD HTTP/1.1
User-Agent: curl/7.12.1
Host: data.zz.baidu.com
Content-Length: 83
------------------
http://www.example.com/1.html
http://www.example.com/2.html
其中post:對應的推送地址;
User-Agent:使用者帶來;
Host:主機;
Content-Length內容長度;
接著是推送的地址
其中User-Agent、Content-Length需要我們在表頭繼續設定。
第三步:java程式進行推送
方式一:利用Spring RestTemplate進行推送
RestTemplate是Spring提供的用於訪問Rest服務的客戶端, RestTemplate提供了多種便捷訪問遠端Http服務的方法,也就是get、post、put、delete等等請求,都能實現,這裡不做詳細介紹。
如果你選擇這種方式,你得有過java框架相關開發經驗,用過spring,其中具體配置就不給出了。
Maven引入Spring
<dependency>
<groupId >org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>4.3.5.RELEASE</version>
</dependency>
這樣,RestTemplate相關的類庫就進來了。
在Bean中配置RestTemplate
<bean id="restTemplate" class="org.springframework.web.client.RestTemplate"/>
好了下面在測試類中進行演示
@ContextConfiguration(locations = {"classpath:applicationContext.xml"})
@RunWith(SpringJUnit4ClassRunner.class)
public class HelloTest {
@Autowired
RestTemplate restTemplate;
@Test
public void testPush() {
String api_url = "http://data.zz.baidu.com/urls?site=www.***.com&token=****";
List<String> urlList = new ArrayList<>();
urlList.add("http://www.***.com/1");
urlList.add("http://www.***.com/2");
urlList.add("http://www.***.com/3");
StringBuffer urlBuffer = new StringBuffer();
for (String url : urlList) {
urlBuffer.append(url + "\n");
}
System.out.println(urlBuffer.toString());
HttpHeaders headers = new HttpHeaders();
headers.add("Host", "data.zz.baidu.com");
headers.add("User-Agent", "curl/7.12.1");
headers.add("Content-Length", "83");
headers.add("Content-Type", "text/plain");
HttpEntity<String> entity = new HttpEntity<String>(urlBuffer.toString(), headers);
String result = restTemplate.postForObject(api_url, entity, String.class);
System.out.println(result);
}
}
方式二:使用java自帶的HttpClient進行推送
封裝的post推送方法:
public String Post(String PostUrl, String[] Parameters) {
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();
//設定通用的請求屬性
conn.setRequestProperty("Host", "data.zz.baidu.com");
conn.setRequestProperty("User-Agent", "curl/7.12.1");
conn.setRequestProperty("Content-Length", "83");
conn.setRequestProperty("Content-Type", "text/plain");
//傳送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();
}
}
return result;
}
測試
@Test
public void testBuidu() {
String url = "http://data.zz.baidu.com/urls?site=www.xxx.com&token=xxx";//網站的伺服器連線
String[] param = {
"http://www.xxx.com/detail/1",
"http://www.xxx.com/detail/2",
"http://www.xxx.com/detail/3"
};
String json = Post(url, param);//執行推送方法
System.out.println("結果是" + json); //列印推送結果
}
第四步:推送結果
執行出現,如果推出成功,將會返回json資料如下:
{
"remain":4999997,
"success":3
}
其中remain就是我們上面提到的最多推送連結數。
如果推送失敗,將會以json形式給出推送失敗的連結及系相關資訊。
後續可在百度站長平臺中檢視,推送結果。不過有延遲,大概第二天,出統計結果。
入口同樣是:網站抓取——>連結提交
如有疑問請留意,希望對你有所幫助。