如何在js里面判断读取来源是搜索蜘蛛

如何在js里面判断读取来源是搜索蜘蛛,如果是蜘蛛,执行一段代码,如果不是蜘蛛,执行另外一段代码

在url地址栏上带个参数比如 https://xxx.xxx.com/?wd=%E8%9C%98%E8%9B%9B

判断是否有蜘蛛
decodeURI(location.search).indexOf("蜘蛛")

 function ispc() {
            var r = document.referrer;
            r = r.toLowerCase();
            var aSites = ['google.', 'baidu.', 'soso.', 'so.', '360.', 'yahoo.', 'youdao.', 'sogou.', 'gougou.,bing.'];
            if (r && aSites.some((item) => r.indexOf(item)) && r.indexOf('http')) {
                console.log('来自爬虫')
                return '来自爬虫'
            } else {
                console.log('不是爬虫')
                return '不是爬虫'
            }
        }

通过UA来辨别百度蜘蛛UA头信息指的是用户代理信息,里面会记录客户端系统及浏览器的一些信息,如果UA头信息里出现了Baiduspider 则代表是百度蜘蛛程序发起的请求。

通过来源IP段来辨别百度蜘蛛百度蜘蛛它是一个综合性蜘蛛程序,它有IP段范围的(如:220.181.108.75~220.181.108.123),比如抓取首页的蜘蛛程序用到的IP和抓取内页用到的IP可能是不同的。

网络上有百度蜘蛛的IP段分布表,大家可以去查下资料,但为了准确性建议向百度官方咨询具体的IP段范围。

查询来访IP绑定的域名我们可以通过技术手段查询某个IP与域名的绑定关系,在Windows上可通过nslookup命令来查询。比如我们从日志里定位到了百度蜘蛛的IP地址,则可以直接用命令确认是否绑定的是百度的域名。

总结:无论是通过UA头信息还是IP段来判断某个IP是否是百度蜘蛛所使用的IP,都存在风险,因为UA头和来源IP都是可以伪造的!

以上就是我的观点