[发明专利]一种基于队列的数据爬取方法在审
申请号: | 202111364007.8 | 申请日: | 2021-11-17 |
公开(公告)号: | CN114064998A | 公开(公告)日: | 2022-02-18 |
发明(设计)人: | 梁艳 | 申请(专利权)人: | 四川长虹电器股份有限公司 |
主分类号: | G06F16/951 | 分类号: | G06F16/951;G06F16/955 |
代理公司: | 四川省成都市天策商标专利事务所(有限合伙) 51213 | 代理人: | 刘兴亮 |
地址: | 621000 四*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 队列 数据 方法 | ||
本发明公开了一种基于队列的数据爬取方法,基于WebMagic爬取一条完整的数据需要不同页面进行,主页面爬取的数据存入redis缓存中,关联页面的url存入到redis队列中,多线程获取redis队列中的url,并将数据拼装完整,同时存入mysql且删除对应缓存数据。本发明通过将WebMagic和redis结合,将爬取的列表页的url数据与详情页的url存入redis队列中,既保证多线程同时进行,同时也保证关联页url不被重复爬取。
技术领域
本发明涉及大数据技术领域,尤其涉及一种基于队列的数据爬取方法。
背景技术
随着互联网和大数据的兴起,爬虫作为获取数据的一个重要方向,主要研究如何快速爬取有用数据问题。网络爬虫按照系统结构和实现技术,大致可以分为以下几种类型:通用网络爬虫、聚焦网络爬虫、增量式网络爬虫、深层网络爬虫。
目前的这类网络爬虫的爬行范围和数量巨大,对于爬行速度和存储空间要求较高,对于爬行页面的顺序要求相对较低,同时由于待刷新的页面太多,通常采用并行工作方式,但需要较长时间才能刷新一次页面。目前的WebMagic,通用方式是:获取列表页面,单线程爬取页面的数据。WebMagic在需要爬取这种类型且大量数据时,启动多个服务或者多台机器均不是最优方案,如果单纯启动Java多个线程进行不同页面爬取,多个页面数据需要组装得情况,对服务器的内存要求较高,且页面容易被重复爬取。
发明内容
本发明的目的就在于为了解决上述问题而提供一种基于队列的数据爬取方法,本发明通过redis作为队列及缓存、WebMagic、mysql数据库等,基于WebMagic爬取一条完整的数据需要不同页面进行主页面爬取的数据存入redis缓存中,关联页面的url存入到redis队列中,多线程获取redis队列中的url,并将数据拼装完整,同时存入mysql且删除对应缓存数据。本发明通过将WebMagic和redis结合,将爬取的列表页的url数据与详情页的url存入redis队列中,既保证多线程同时进行,同时也保证关联页url不被重复爬取。
本发明通过以下技术方案来实现上述目的:
一种基于队列的数据爬取方法,包括以下步骤:
步骤1,通过页面获取列表url,将url存入到redis队列basicPage;
步骤2,多线程获取basicPage中的url,解析出基本信息,并通过详情url作为key,解析出来的json存入到redis,同时将详情页的url存入到detailsPage;
步骤3,多线程获取detailsPage,获取url的唯一标识符为key的对应的json,并将详情页中的信息解析出来,加入到对应的json中;
步骤4,详情页解析完成后,将json存入到mysql中,并删除redis中url的唯一标识符为key。
进一步方案为,所述步骤2中,PageProcessor解析出需要的列表,Pipeline将对应列表存入到redis的队列basicPage中。
进一步方案为,所述步骤3中,多线程从basicPage队列中获取到基础页的url;从基础页面获取到详情页的url且以详情页的url为key,其他信息组装成json存入到redis中。
进一步方案为,所述步骤3中,获取到详情页的url,存入到redis队列detailsPage中。
进一步方案为,所述步骤3中,多线程从detailsPage获取的详情页的url,并通过url获取到对应基础页存入的json信息。
本发明的有益效果在于:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于四川长虹电器股份有限公司,未经四川长虹电器股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111364007.8/2.html,转载请声明来源钻瓜专利网。
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置