百度鏈接提交-js代碼推送批量推送版

1原百度JS鏈接推送代碼

首先我們來看一下原百度JS鏈接推送代碼是這*樣的

百度鏈接提交-js代碼推送批量推送版

用百度自己的話講:JS鏈接推送代碼以網頁爲最小對象,服務於全平臺多終端,PC站和移動站均可使用。安裝代碼的頁面在任意平臺(瀏覽器、微信、微博)被加載時,頁面鏈接會被第一時間推送給百度,從而提高站點新內容的發現速度。

當有用戶訪問你的網頁時,這個腳本就會從百度下載一個1x1的gif,同時記錄頁面此時此刻的URL地址。

2自動推送腳本的分析

通過這段腳本我們可以看出: 

 1、它先是判斷了目前的協議類型是https還是其他類型(如,http,ftp等)

 2、然後下載了百度官方的一個js文件 

 3、再然後它將js文件的內容生成一個腳本塊插入到當前頁面中 

 4、最後會運行這個腳本塊 我們可以訪問這兩個js文件查看其內容,也就是短短的一行。它會讀取這樣一個gif。 https://sp0.baidu.com/9_Q4simg2RQJ8t7jm9iCKT-xh_/s.gif 或者http://api.share.baidu.com/s.gif 同時將window.location.href等信息推送給了百度。

點開那個s.gif你會發現有兩個請求參數之Query String Parameters 一個:r一個:l

分析r:既是Referer來源 l:則是要推送的url

3百度批量推送代碼

通過上面分析,大膽猜測是不是我們通過那個s.gif就可以自定義推送我們的url頁面地址

<script type="text/javascript">
var list = document.getElementsByTagName("a");
var n = "http//api.share.baidu.com/s.gif";
var ns = "https://sp0.baidu.com/9_Q4simg2RQJ8t7jm9iCKT-xh_/s.gif"; 
var r = window.location.href;
var url = [];
var curProtocol = window.location.protocol.split(':')[0];
if (curProtocol === 'https') {
for(var i=0;i<list.length;++i){
    url.push(ns+'?l='+encodeURIComponent(list[i].href));
}
} else {
for(var i=0;i<list.length;++i){
    url.push(n+'?r='+r+'&l='+encodeURIComponent(list[i].href));
}
}
for(var i=0;i<list.length;++i){
    var t = new Image;
    t.src = url[Math.round(Math.random() * list.length)];
}; 
</script>

推送原理,原推送代碼當有人訪問你的頁面時即推送本頁面(這個大家應該都懂)。批量版,當有人訪問你的頁面是則推送本頁面上所有的URL,已加入https支持

原文出處:http://www.newbii.cn/20191211091111.htm

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章