利索能及
我要发布
收藏
专利号: 2020107842627
申请人: 成都信息工程大学
专利类型:发明专利
专利状态:已下证
更新日期:2025-12-30
缴费截止日期: 暂无
联系人

摘要:

权利要求书:

1.一种基于Scrapy框架的数据采集方法,其特征在于,包括以下步骤:S1、爬虫模块将需要爬取的网站详情页的request请求发送至引擎;

S2、引擎将所有的request请求发送至调度器,调度器将所有request请求压入队列;

S3、引擎从调度器中获取一个request请求,并通过下载中间件发送至下载器;

S4、下载器接收request请求后,向服务器发送request请求,将对应网页源码下载,并生成对应网页的响应,将所述响应通过下载器中间件返回至引擎;其中向服务器发送的request请求中携带更新的cookie数据;下载的对应网页源码包括在所述响应中;

S5、引擎从下载器中接收到响应,将所述响应通过爬虫中间件发送给爬虫模块;

S6、爬虫模块处理并解析响应,从响应中提取出所需信息、并从队列中提取下一个request请求,将所需信息封装为实体数据,和下一个request请求共同发送至引擎;

S7、引擎将返回的实体数据发送至管道,管道将实体数据存入数据库中,并将下一个request请求发送至调度器,调度器将下一个request请求发送至引擎,引擎通过下载中间件将下一个request请求发送至下载器;

S8、重复S4~S7,直至队列中没有剩余的request请求。

2.根据权利要求1所述的一种基于Scrapy框架的数据采集方法,其特征在于,步骤S4中,对于每个request请求,下载器均向服务器发送两次,通过第一次发送得到服务器返回的cookie参数,以返回的cookie参数作为更新的cookie数据进行第二次发送,通过第二次发送得到服务器返回的响应。

3.根据权利要求1所述的一种基于Scrapy框架的数据采集方法,其特征在于,步骤S4中,若下载器获得的是针对某网站详情页的第一个request请求,则将cookie参数设置为通过浏览器开发者模式得到的已登录账户的cookie,再向服务器发送request请求,得到服务器返回的响应后,对该响应进行处理得到更新的cookie数据;

若下载器拿到的是第二个及后续request请求,则将cookie参数设置为上一次request请求时得到的cookie,作为更新的cookie数据,再向服务器发送请求;得到服务器返回的响应后,对响应进行处理得到更新的cookie数据提供给下一次request请求使用。

4.根据权利要求3所述的一种基于Scrapy框架的数据采集方法,其特征在于,对响应进行处理得到更新的cookie数据的方法为:在服务器返回响应后,使用python编程语言的requests库得到更新的cookie数据。

5.根据权利要求1所述的一种基于Scrapy框架的数据采集方法,其特征在于,步骤S1中的request请求中包括Token信息,所述Token信息包括已经登录用户的Token值。

6.根据权利要求1所述的一种基于Scrapy框架的数据采集方法,其特征在于,步骤S4中,每次发送一个request请求后延迟一段时间发送下一个request请求,或使用代理IP发送request请求。

7.根据权利要求1所述的一种基于Scrapy框架的数据采集方法,其特征在于,还包括对存入数据库中的实体数据进行解密,解密方法包括:S901、在浏览器开发者模式中查看网页源码,找到生成加密字体的对应代码;

S902、将加密的字体进行解码,得到解码后的字体文件;

S903、构建字体文件中Unicode映射的字符字典:得到字体文件中所有字体的字体形状,并逐一对其使用unicode的解码方法,将字体映射为unicode列表;

S904、创建映射关系,将加密后的数据和实际的数据对应关系存储起来,再对爬取到的数据进行逐一遍历,将爬取到的字符映射为对应的实际值;

S905、得到每一个加密码所映射代表的意思,对存入数据库中的实体数据进行转换处理。

8.根据权利要求1所述的一种基于Scrapy框架的数据采集方法,其特征在于,还包括用于破解签名验证的请求预处理,所述请求预处理的方法包括:S001、在浏览器开发者模式中查看网页源码,找出请求表单数据参数中每次都会变化的参数,定义为加密参数;

S002、将网页源码全部抓取,在其中找到生成这些加密参数的方法,定义为加密方法;

S003、在发送request请求前,根据得到的加密方法生成新的加密参数,并携带在每次request请求中。

9.一种基于Scrapy框架的数据采集系统,其特征在于,包括:

爬虫模块:其内定义了负责爬取的逻辑和网页的解析规则,用于解析响应,并从中分析提取数据,获取需要的数据,并将需要跟进的请求提交给引擎,再次进入调度器;

引擎:用于整个系统的数据流处理;并用于获得更新的cookie数据;

下载器:用于下载引擎发送来的request请求,并将获取到的内容以响应的方式交还给引擎;

管道:用于处理由爬虫模块从网页中获取到的实体数据;

下载器中间件:位于引擎和下载器之间的中间件,主要是处理引擎与下载器之间的请求和响应;

爬虫中间件:介于引擎和爬虫模块之间的中间件,用于处理爬虫模块的响应输入和请求输出。

10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1~8中任意所述一种基于Scrapy框架的数据采集方法的步骤。