预览加载中,请您耐心等待几秒...
1/9
2/9
3/9
4/9
5/9
6/9
7/9
8/9
9/9

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

(19)中华人民共和国国家知识产权局(12)发明专利申请(10)申请公布号CN110569414A(43)申请公布日2019.12.13(21)申请号201910773517.7(22)申请日2019.08.21(71)申请人时趣互动(北京)科技有限公司地址100124北京市朝阳区东四环中路76号楼3层301内313(72)发明人曹特磊(51)Int.Cl.G06F16/951(2019.01)G06F9/4401(2018.01)G06F9/54(2006.01)权利要求书1页说明书3页附图4页(54)发明名称一种基于puppeteer的网站数据收集方法(57)摘要本发明提供了一种基于puppeteer的网站数据收集方法,在puppeteer中加载目标网站,通过多个独立数据爬虫子进程进行内部数据抓取,每个数据爬虫子进程包括如下步骤:步骤1,获取数据抓取任务,并对抓取任务加锁;步骤2,使用puppeteer打开目标网站,在预设事件发生后,提取目标数据;步骤3,存储抓取的数据,解锁并标志抓取任务为完成。本发明可以直接拿到渲染后的页面,获取到全部有效信息。可以运行于无视图模式,可以同时运行多个实例,且系统资源占用低,可以分布式部署,整体稳定性和抓取效率都非常高,可以部署在常用的linux系统的服务器上,可以作为service提供抓取的网络服务。CN110569414ACN110569414A权利要求书1/1页1.一种基于puppeteer的网站数据收集方法,其特征在于,在puppeteer中加载目标网站,通过多个独立数据爬虫子进程进行内部数据抓取,每个数据爬虫子进程包括如下步骤:步骤1,获取数据抓取任务,并对抓取任务加锁;步骤2,使用puppeteer打开目标网站,在预设事件发生后,提取目标数据;步骤3,存储抓取的数据,解锁并标志抓取任务为完成。2.根据权利要求1所述的基于puppeteer的网站数据收集方法,其特征在于,所述步骤1包括:设置一个定时触发器,每隔1分钟,去任务表中查询是否有尚未抓取的数据任务;如果存在未抓取的数据任务,对此任务加锁,以防止其他的进程重复执行同一个抓取任务,然后唤起并调用数据抓取模块;若任务表中查询不到任务,此进程进入休眠,等待定时触发器的下一次唤醒。3.根据权利要求2所述的基于puppeteer的网站数据收集方法,其特征在于,所述步骤2包括:在抓取模块被唤醒之后,从抓取任务内获取抓取的任务类型,并通过任务类别,确定目标网站url。抓取模块通过puppeteer启动chromium,打开目标网站url;在chromium打开目标网站url时,监听以下事件:http请求发出、http请求返回内容、页面加载完成、页面加载失败;设置一个或多个数据抓取脚本,将抓取脚本与所述事件中的一种或多种关联,在特定事件发生时,通过抓取脚本调用puppeteer抓取数据。4.根据权利要求3所述的基于puppeteer的网站数据收集方法,其特征在于,所述步骤3包括:对数据内容做解析,然后校验数据内容是否合法;若数据内容不合法,任务状态设置为异常,并进入任务池,等待数据抓取的重试;若数据内容合法,做数据内容的完成性校验;若数据不完整,任务状态设置为待抓取,等待任务数据的继续抓取;若数据内容完成,将数据推入消息队列;同时任务状态设置为完成。2CN110569414A说明书1/3页一种基于puppeteer的网站数据收集方法技术领域[0001]本发明属于网站数据收集领域,具体涉及一种基于puppeteer的网站数据收集方法。背景技术[0002]普通网站数据获取,是通过爬虫获取网站url所对应的http请求,并解析http请求的结果。普通爬虫可以爬取传统网页内容。但目前使用大部分网站,是使用ajax来获取内容,通过JavaScript来渲染页面。普通网页爬虫无法获得有效数据,或者只能获得部分数据。[0003]有少部分较为先进的获取方法是通过selenium来打开游览器,并通过元素定位的方位,获取网页内容。Selenium本身是测试框架,必须运行于有视图的操作系统上,无法部署于常用的linux服务器上。所以无法做到分布式部署,稳定性和抓取效率都非常差,无法作为service提供抓取服务。发明内容[0004]本发明的目的是提供一种基于puppeteer的网站数据收集方法,以解决上述技术问题。[0005]本发明提供了一种基于puppeteer的网站数据收集方法,在puppeteer中加载目标网站,通过多个独立数据爬虫子进程进行内部数据抓取,每个数据爬虫子进程包括如下步骤:[0006]步骤1,获取数据抓取任务,并对抓取任务加锁;[0007]步骤2,使用puppeteer打开目标网站,在预设事件发生后,提取目标数据;[0008]步骤3,存储抓