- 68浏览
- 2022-04-28
1、问题背景:
从今年开始,公司网站的百度统计后台经常出现SEO收量、流量劫持、SEO外包等广告流量,自己的个人博客上线不到一个月百度统计后台也开始被刷广告了,首先营销了数据统计的准确性,其次每次打开后台看到一堆广告,强迫症看着非常不舒服。于是就想办法去屏蔽它。
2、工作原理:
想要屏蔽这些广告流量,就要先明白他们的工作原理。他们工作的流程大致如下:
首先写一个机器爬虫,爬取页面内容,寻找【hm.baidu.com/hm.js】如果找到了就说明你使用了百度统计,然后再获取后面的参数,就得到了你的百度统计ID。
然后将你的百度统计ID保存到他们的数据库,使用程序批量的给百度统计接口发送数据,这些数据就出现在你的百度统计后台了。这点通过网站日志与百度统计数据对比就可以筛查出,最初我是在服务器里对这些垃圾流量的域名进行了屏蔽,然而并没有起作用。
所以说他们根本不是真的去你访问你的网站了,而是直接给百度统计的接口提交了数据,对你的网站流量没有任何贡献,你只有看广告的份。
3、解决方法:
我们明白了他们的原理,就可以针对性的去解决他们刷广告了。
首先,因为你现在的百度统计ID已经被保存在他们的数据库了,所以要删除百度统计后台现有的百度统计ID,再新增网站,获得一个新的统计代码。
然后,为了防止让他们的爬虫程序再次识别到百度统计代码,我们需要将百度统计的代码做一下优化,把统计URL和统计ID转化成字符串数组,然后再拼装起来,实例如下:
新获取的百度统计代码:
<script>
var _hmt = _hmt || [];
(function() {
var hm = document.createElement("script");
hm.src = "https://hm.baidu.com/hm.js?123456789abcdefgh";
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(hm, s);
})();
</script>
优化后的百度统计代码<script>
var _hmt = _hmt || [];
(function() {
var hm = document.createElement("script");
hm.src = ['ht', 't', 'ps', ':/', '/h', 'm', '.', 'ba', 'i', 'd', 'u.c', 'o', 'm/', 'h', 'm', '.j', 's?', '123456789','abcdefgh'].join('');
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(hm, s);
})();
</script>
只需修改红色的那一行代码即可。如果你也遇到相同的问题,可以试下这个方法。
版权声明:
1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。
2、本站仅提供信息发布平台,不承担相关法律责任。
3、若侵犯您的版权或隐私,请联系本站管理员删除。
4、本文由会员转载自互联网,如果您是文章原创作者,请联系本站注明您的版权信息。