laravel 做的网站怎么有效的处理反爬虫?
公司线上运营人员每天都要到全国各个医疗器械网站查看最新公告或法规发布信息 于是我就用 QueryList 和 selenium 写了爬虫 每天都去爬取各网站信息
国家药品监督管理局 做了反爬虫 不知道是怎么实现的 但是用selenium 也爬取到数据了
现在公司想做成像 国家药品监督管理局 这样的反爬虫措施 我很苦恼 该肿么办
现在做法是:
1,验证用户登录中间件中
1.1添加用户访问记录表 记录数据有( 用户id,ip,链接地址)
1.2验证用户是否在“黑名单”中 是跳转至提示界面
2,计划任务每隔5分钟查验 用户访问记录表 ip或用户id访问次数是否超过100
是则将 ip和账号id添加至“黑名单”并设置账号状态为“冻结” 账号冻结状态下无法登陆成功
3,系统管理员查看后台“黑名单”列表 操作删除记录并设置用户状态为“正常”
这样的流程太伤。。。 伤客户也伤人力 客服不干了
3 Comments
完全屏蔽是不可能的 selenium 模拟的是浏览器客户端访问,根本防不住,可以对 API 接口访问频率做限制,或者更高级一点,通过分析系统日志或者大数据分析哪些访问更像爬虫,然后把这些访问拒绝掉
已经这么干了 公司不满意
更高级的做法做了?实际上阿里之类的也是这么做的,通过大数据分析,爬虫往往都是有一定规则的