如果user agent带有“spider”,就可以认为是搜索机器人,可以进行屏蔽,方法如下。
在django view里从request中读取user agent。user agent信息存储在request.META字典里,用“HTTP_USER_AGENT”取出来。
然后进行spider判断,如果含有spider,就返回http Forbidden。
这个方法只是暂时把YisouSpider挡住了,没想一两个小时后,YisouSpider居然伪装了一个看起来正常的user agent:“Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.5359.95 Safari/537.36 QIHU 360SE”,agent里带QIHU 360SE,真是无语了。
另外,也设置过了apache,Require not ip xxx.xxx.xxx.xxx,加入了近20个ip,但YisouSpider的ip真多,根本无法挡住。
看来要根据ip访问的频次和浏览网站的时间长短来拦截了。