一种集检测与反制为一体的高效抗反爬虫方法

文档序号:36400357发布日期:2023-12-16 02:52阅读:48来源:国知局
一种集检测与反制为一体的高效抗反爬虫方法

本发明涉及计算机网络领域,特别涉及一种集检测与反制为一体的高效抗反爬虫方法。


背景技术:

1、互联网的大数据时代的来临,网络爬虫作为一种自动获取网页数据信息的爬虫程序,是网站搜索引擎的重要组成部分。通过爬虫,可以获取自己想要的相关数据信息,让爬虫协助自己的工作,进而降低成本,提高效率。但是目前常规的网站都有反爬措施,这大大的降低了爬虫爬取数据的效率与成功率,常见的应对方法是手动对每种反爬虫限制进行检测,检测完成后针对该策略进行单独的反制,但是这种方式具有效率低下、不稳定与不易管理缺点。


技术实现思路

1、本发明所要解决的技术问题是:

2、为了避免现有技术的不足之处,本发明提供一种集检测与反制为一体的高效抗反爬虫方法。设置单独的智能反爬虫策略检测模块,同时将所有的抗反爬虫模块有机结合在一起,根据智能化检测的结果调用相应的抗反爬虫模块,实现一个集检测与反制为一体的高效抗反爬虫流程,极大地提高了爬虫采集数据的效率。

3、为了解决上述技术问题,本发明采用的技术方案为:

4、一种集检测与反制为一体的高效抗反爬虫方法,其特征在于,包括:

5、创建代理池,采用基于权值的检测算法筛选出可用性最高的代理;

6、设置本次任务的配置信息,根据可用性最高的代理与配置信息使用selenium技术对目标网站进行检测,并将检测结果写入配置文件中;

7、爬虫线程从初始化队列中取出任务,并携带配置文件的参数对目标网站进行自动化登录;

8、如果网页存在验证码,则对验证码所在标签进行截图保存,调用ocr接口进行识别;登录成功后获取jwt令牌并对其解析,检测其是否有效,如果失效则需要重新登录;如果有效可以进行随机限速的设置,开始执行爬虫采集任务。

9、本发明进一步的技术方案:所述创建代理池具体为:

10、从公开代理网站采集代理,采集完成后进行解析,解译的格式统一为ip+端口的形式,并对每个代理赋予初始权值50,将所有的代理与其对应的权值存放到存储模块中,存储模块使用了redis中的有序集合zset;其次搭建代理池的接口模块,负责对外暴露restful风格的接口供爬虫程序调用。

11、本发明进一步的技术方案:所述采用基于权值的检测算法筛选出可用性最高的代理,具体为:

12、首先遍历并检测存储模块中所有带有权值的代理,若检测到一个代理是可用的,立即将该代理的权值提升为100,同时将该代理放到存储模块有序集合的最前面;若不可用在原来的基础上-1,减至0后从存储模块中删除。

13、本发明进一步的技术方案:所述爬虫线程从初始化队列中取出任务,并携带配置文件的参数对目标网站进行自动化登录具体为:

14、首先在初始化队列中配置种子url,根据fifo原则取出当前任务,然后在配置文件中读取任务参数,最后使用chrome驱动携带配置参数打开目标网站;

15、借助xpath解析网页源码,通过标签定位到输入账号密码的位置,使用selenium技术模拟人的行为进行网页行为交互。

16、本发明进一步的技术方案:对验证码所在标签进行截图保存,调用ocr接口进行识别具体为:

17、首先采集selenium返回的页面信息,然后使用xpath工具对网页dom标签进行解译,根据验证码所在标签的id定位到验证码图片,接着对该标签进行截图并保存,最后使用ocr技术对保存在本地的验证码进行识别并使用selenium结果填充进网页中的文本框进行验证。

18、本发明进一步的技术方案:所述获取jwt令牌并对其解析,检测其是否有效,如果失效则需要重新登录具体为:

19、通过selenium收集到的目标数据的响应,从中解析出jwt信息;

20、使用base64对jwt进行解码,解码会得出三部分:header、payload与signature,其中header中指定了签名算法与令牌类型,payload中存放的是网站发送给用户的加密信息,通常保存一些非敏感的用户数据信息,signature是对前两部分的防篡改签名;过期时间则保在payload中,将其解析出来与当前系统时间进行比较,若超出该过期时间则需要重新登录获取jwt认证信息。

21、本发明进一步的技术方案:所述随机限速的设置具体为:

22、通过selenium对多线程爬虫设置随机的等待时间,从而尽可能的模拟正常用户访问网站的行为。

23、一种计算机系统,其特征在于包括:一个或多个处理器,计算机可读存储介质,用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现上述的方法。

24、一种计算机可读存储介质,其特征在于存储有计算机可执行指令,所述指令在被执行时用于实现上述的方法。

25、本发明的有益效果在于:

26、本发明提供的一种集检测与反制为一体的高效抗反爬虫方法,通过搭建代理池并设置高效的可用性检测模块,可以筛选出最高可用的代理进行爬虫工作,很大程度上降低了单一ip被封锁或限制的概率;通过创建智能反爬虫检测模块,可以高效地检测出目标网站使用的反爬策略;通过selenium自动化技术结合标签定位与ocr技术一同实现完整的自动化登录流程,以模拟人的行为操作dom节点,避免了爬虫程序被服务器的反爬策略检测出来从而导致任务失败的场景;通过对登录成功后的jwt令牌进行解译,根据内部的过期时间进行有效性判断,可以在过期时及时的更新令牌避免对任务产生较大的影响;通过随机的对任务限速,使得本次爬虫行为更加符合人操作的特征,再次降低被检测的概率。



技术特征:

1.一种集检测与反制为一体的高效抗反爬虫方法,其特征在于,包括:

2.根据权利要求1所述的一种集检测与反制为一体的高效抗反爬虫方法,其特征在于,所述创建代理池具体为:

3.根据权利要求2所述的一种集检测与反制为一体的高效抗反爬虫方法,其特征在于,所述采用基于权值的检测算法筛选出可用性最高的代理,具体为:

4.根据权利要求1所述的一种集检测与反制为一体的高效抗反爬虫方法,其特征在于,所述爬虫线程从初始化队列中取出任务,并携带配置文件的参数对目标网站进行自动化登录具体为:

5.根据权利要求1所述的一种集检测与反制为一体的高效抗反爬虫方法,其特征在于,对验证码所在标签进行截图保存,调用ocr接口进行识别具体为:

6.根据权利要求1所述的一种集检测与反制为一体的高效抗反爬虫方法,其特征在于,所述获取jwt令牌并对其解析,检测其是否有效,如果失效则需要重新登录具体为:

7.根据权利要求1所述的一种集检测与反制为一体的高效抗反爬虫方法,其特征在于,所述随机限速的设置具体为:

8.一种计算机系统,其特征在于包括:一个或多个处理器,计算机可读存储介质,用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现权利要求1-7任一项所述的方法。

9.一种计算机可读存储介质,其特征在于存储有计算机可执行指令,所述指令在被执行时用于实现权利要求1-7任一项所述的方法。


技术总结
本发明涉及一种集检测与反制为一体的高效抗反爬虫方法,涉及计算机网络领域。首先创建代理池,并通过检测模块筛选出可用性最高的代理;接着设置本次任务的配置信息,反爬虫检测模块根据代理与配置信息使用Selenium技术对目标网站进行检测,并将检测结果写入配置文件中;接着爬虫线程从初始化队列中取出任务,并携带参数对目标网站进行自动化登录。如果网页存在验证码,则对验证码所在标签进行截图保存,然后调用OCR接口进行识别。登录成功后获取JWT令牌并对其解析,检测其是否有效,如果失效则需要重新登录,有效可以进行随机限速的设置,最后开始执行爬虫采集任务。

技术研发人员:朱怡安,孙延民,李联
受保护的技术使用者:西北工业大学
技术研发日:
技术公布日:2024/1/15
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1