我们做网站SEO优化的都知道查看网站流量统计数据的重要性,但是这段时间一来,在百度统计后台中常会看到广告泛滥,包括收流量、代开FP、SEO、云主机等等广告,严重影响了正常的统计分析,所以想办法解决了这个问题,分享给使用百度统计的用户们。
百度统计被刷广告的表现症状
如果你的百度统计被恶意刷广告的话,你会在百度统计后台里的搜索词、来源等看到各种广告,包括收流量、代开FP、SEO、云主机等等广告,例如我下面的截图,很多真实的流量被刷到看不到,而且流量也会造成统计不准,失去了统计的意义。
百度统计被刷广告的原理
想要斩草除根,就需要知己知彼,明白他们操作的原理以后,就可以有效的遏制他们无下限的刷广告。
他们是这样做的,先写一个机器爬虫,爬取页面内容,寻找「hm.baidu.com/hm.js」如果找到了就说明你使用了百度统计,然后再取后面的参数,就得到了你的百度统计ID,然后保存到数据库,拿到你的的百度统计ID以后,就可以进行下一步,使用程序批量的给百度统计接口发送数据,也就是说这些内容他们根本不是真的去你的网站,而是直接给百度统计的接口提交了数据,对你的网站流量没有任何贡献,你只有看广告的份。
我也是被刷广告刷的很严重,是在忍无可忍,必须解决一下他们了。
百度统计被刷广告的解决办法
我们明白了他们的原理,现在就开始见招拆招,破解他们的刷广告的手段。
首先,你的旧的统计代码ID已经被他们获取到了,保存到了他们的数据库,所以建议旧的代码就放弃吧,去百度统计删除掉,再新增网站,你会获得一个新的统计代码。
然后,为了让他们的爬虫程序识别不到百度统计代码,我们需要将百度统计的URL地址做一个变换,我的方式是将原有的百度统计URL地址打散成一个一个的字符串数组,然后再拼装起来,实例如下:
百度统计给我们的代码:
var _hmt = _hmt || [];
(function() {
var hm = document.createElement("script");
hm.src = "https://hm.baidu.com/hm.js?ee1f1987ccfc9bcd61a1d220f5ae41e1";
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(hm, s);
})();
将百度统计的特征,也就是地址打散成数组,再组装使用:
var _hmt = _hmt || [];
(function() {
var hm = document.createElement("script");
var analytics_bd = 'ee1f1987ccfc9bcd61a1d220f5ae41e1';
hm.src = ['ht', 't', 'ps', ':/', '/h', 'm', '.', 'ba', 'i', 'd', 'u.c', 'o', 'm/', 'h', 'm', '.j', 's?', analytics_bd].join('');
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(hm, s);
}
)();
需要改动的就只有一行,注意「hm.src = "https://hm.baidu.com/hm.js?ee1f1987ccfc9bcd61a1d220f5ae41e1";」这行代码,被拆散为数组,然后再拼装起来使用。这样他们的爬虫程序就无法识别到你在使用百度统计了。
看了上面的教程自己操作起来是不是非常简单了,我自己使用这个方法已经几个月,目前百度统计数据一切正常,如果你有其它方案也欢迎交流。
------------
商业用途请联系作者获得授权。
版权声明:本文为原创文章,遵循 CC BY-NC-SA 4.0 版权协议,转载请附上原文出处链接及本声明。
作者:任霏
来源:https://www.renfei.net/posts/1003425