上次改编了一下百度的JS推送代码,实现了批量推送
传送门>>>
这次我们来研究360js自动推送代码。
<script>(function(){var src = "https://jspassport.ssl.qhimg.com/11.0.1.js?d182b3f2654654f2db83acfaaf6e696dba";document.write('<script src="' + src + '" id="sozz"><\/script>');})();</script>
分析发现,这跟百度的自动推送代码其实都差不多的,一个s.gif,一个zz.gif 只不过360多了一个token
token是通过要推送的地址加上你推送js后面的参数生成
在这里我们通过api后台生成token,然后在通过POST异步请求的方式处理图片 也就是那个zz.gif
1先来看看后台部分吧
<?php function getPushSoUrl($url){ $token='d182b3f2654654f2db83acfaaf6e696dba'; return $str="http://s.360.cn/so/zz.gif?url=".urlencode($url)."&sid=". $token."&token=".getPushToken($url,$token);}function getPushToken($url,$o){ $n = str_split($url,1); $n=array_reverse($n); $r = str_split($o,1); $i=[]; for($s=0,$o=16;$s<$o;$s++){ array_push($i,empty($n[$s])?$r[$s]:$r[$s].$n[$s]); } return implode($i);}
2然后是前台处理zz.gif,也就是批量推送
<script src="https://cdn.bootcss.com/jquery/1.10.2/jquery.min.js"></script><script type="text/javascript"> var hrefArr = document.getElementsByTagName('a'); //获取这个页面的所有A标签 var hrefURL = new Array(); for(var i=0; i<hrefArr.length; i++){ hrefURL[i] = hrefArr[i].href; }function unique(arr){ var res = []; var obj = {}; for(var i=0; i<arr.length; i++){ if( !obj[arr[i]] ){ obj[arr[i]] = 1; res.push(arr[i]); } } return res;} $.ajax({ url: "https://www.newbii.cn/360ts?token=d182b3f2654654f2db83acfaaf6e696dba",//这里改成自己的也就是js?后面的部分 type: "post", data: { url: JSON.stringify(unique(hrefURL)), }, traditional: true, dataType: "json", success: function (data) { if (data.status == "success") { for(var i=0;i<data.result.length;++i){ var t = new Image; t.src = data.result[i].img; } } }});</script>
好了本次教程到此结束,喜欢的朋友可以关注一下我的博客。
什么?看不懂?不会?没关系,如果你懒的折腾,可以直接复制第二部分把参数改改即可
可以通过F12查看效果