一种基于代工模式的动态网页爬虫方法及系统技术方案

技术编号:25599162 阅读:43 留言:0更新日期:2020-09-11 23:56
本发明专利技术公开了一种基于代工模式的动态网页爬虫方法及系统,包括:接收业务信息,配置爬虫参数,业务评估,做准备工作;分配系统资源,发起多个独立进程的业务爬虫;采用模拟浏览器模式,对动态网页原始URL进行爬取,并返回目标静态数据内容的URL;审查URL的有效性和非重复性,并审查后的爬取任务,构造生产任务消息列表,发起多个线程的生产爬虫;采用自动化程序模式,对静态的URL页面进行爬取,并返回目标数据和附件文件;对返回内容处理并存储;导出数据。本发明专利技术分别构造了业务爬虫和生产爬虫,基于代工模式对动态网页和静态内容采取不同的爬取策略,最大限度地利用系统资源,实现对动态网页数据进行大规模、快速爬取。

【技术实现步骤摘要】
一种基于代工模式的动态网页爬虫方法及系统
本专利技术涉及互联网信息检索、搜索引擎
,尤其涉及一种基于代工模式的动态网页爬虫方法及系统。
技术介绍
网络爬虫是互联网搜索引擎的重要组成部分,主要用于在互联网上抓取网页中的数据,为搜索引擎建立索引。抓取量是否够大,决定搜索引擎的内容是否丰富,抓取是否即时,直接影响搜索引擎的整体效果。在大数据的背景下,网络爬虫也广泛用于网络舆情、商品交易、文体娱乐等网络数据的抓取,为进一步的数据挖掘、数据分析提供海量的基础数据。通用的网络爬虫其工作原理是通过访问目标网页的URL,获得网页HTML数据,然后解析HTML中的DOM节点,抽取出目标数据或者数据的URL链接,保存到数据库或,再通过深度优先或者广度优先等策略继续爬取更多网页上的数据。由于网络爬虫或多或少会对目标网站产生一定的干扰或者出于数据保护等原因,许多网站会采取一些反爬虫手段。除此之外,有些网站由于其业务功能的原因,不会在用户初始打开页面时就将全部信息显示出来,而是需要通过点击某个按钮或者滑动滚动条等人工操作后,再通过Ajax的方式动态加载进来。对于动态网页的爬取,现有技术方法是采用模拟浏览器(例如Selenium、PhantomJS等)的方式,在需要人工操作的地方通过程序来模拟鼠标、键盘的行为,已达到触发网页动态加载新内容的目的。这种方式最大的缺点是效率低下,任务调度简单,不能满足大规模爬取任务的需求。
技术实现思路
本专利技术所要解决的技术问题是现有爬虫方法效率低下、任务调度简单、不能满足大规模爬取任务需求,目的在于提供一种基于代工模式的动态网页爬虫方法及系统,解决简单高效大规模完成爬取任务的问题。本专利技术通过下述技术方案实现:一种基于代工模式的动态网页爬虫方法,包括以下步骤:S1:接收用户输入的业务信息,配置爬虫业务参数,进行业务评估,并做好准备工作;S2:根据所述业务信息,在指定时间分配好系统资源,发起多个独立进程的业务爬虫;S3:所述业务爬虫采用模拟浏览器模式,对动态网页原始URL进行爬取,并返回目标静态数据内容的URL;S4:审查所述URL的有效性和非重复性,并对通过审查的爬取任务,构造生产任务消息列表,在分布式服务器上发起多个多线程的生产爬虫;S5:所述生产爬虫采用自动化程序模式,对含静态内容的URL页面进行爬取,并返回目标数据字段和附件文件;S6:对所述目标数据字段进行预处理,预处理后的目标数据字段和所述附件文件形成业务数据,存储所述业务数据;S7:导出所述业务数据,反馈给用户。本专利技术通过对动态网页和静态内容采取不同的爬取策略,有针对性地发挥各自优势,最大限度地利用系统资源;基于代工模式,按照业务功能进行方法操作,可根据业务具体情况进行方法的相应调整和配置,步骤之间有序调度、相互配合,具有高度的灵活性,能够实现对动态网页进行大规模、快速爬取。本专利技术方法基于代工模式,对动态网页采用模拟浏览器操作、独立进程、同步模式的业务爬虫;在爬取到目标数据静态内容的链接URL后,交由效率更高,采用自动化程序、多线程、异步模式的生产爬虫并行爬取。对业务进行评估的结果,若数据量巨大、生产爬虫并行程度高,则采用分库分表的方式进行存储,以提高存取效率。进一步的,所述业务信息包括业务ID、业务描述、起始URL、登录资料、执行策略、防反爬措施、爬取数据字段与定位和导出数据格式。进一步的,所述登录资料包括账号、密码和CA证书,所述执行策略为一次性定时增量爬取,所述防反爬措施包括IP代理、浏览器头和CSS偏移。若目标URL设置有反爬虫措施,则在开启生产爬虫时,根据所述防反爬措施进行爬取。进一步的,所述步骤S1中准备工作包括:业务参数完备性检查:确保所述业务信息的完整性;保证用户输入的业务相关信息完整,系统能够依据相关参数执行爬取任务。访问通行证准备:根据所述业务信息,登录目标网站,获取并保存cookies信息,验证所述CA证书;确保账户成功登录。小任务尝试:根据所述起始URL和所述访问通行证准备,构造小型爬取任务,通过执行情况,分析所述目标网站的字符编码、数据量、访问时长和爬取成功率;为下一步安排正式爬取任务提供资源安排参考信息。设计数据字段与规范化要求:根据所述业务信息,设计目标数据的字段名称、字段格式、字段长度和规范化要求。建立数据库、数据表和附件存储空间。为该业务建立持久化存储相关资源。进一步的,,所述步骤S1中业务评估包括对业务所需的服务器硬件、软件、存储和网络带宽的评估。结合当前系统的运行状态和资源情况,判断是否能够立即承接该业务;若能承接则着手进行业务准备,若不能承接则反馈给用户,暂不立即执行。进一步的,若数据量巨大、生产爬虫并行程度高,则采用分库分表的方式进行存储。以提高存取效率。进一步的,所述步骤S3中,所述模拟浏览器模式包括模拟浏览器鼠标点击、滚动条滑动、键盘输入和复制粘贴。进一步的,所述步骤S4包括以下子步骤:S01:通过合法性规则审查URL的有效性;S02:通过Hash算法将URL映射到HashMap的Key上,采用布隆过滤器审查URL是否重复;若重复,则丢弃,并进行日志记录。进一步的,所述这步骤S6中,对所述目标数据字段进行预处理,详细内容如下:数据完整性检查:指定要爬取的字段是否完整,数据内容是否达到要求;对不能达到要求的数据可根据严重程度进行纠正、标注或丢弃;字段规范化处理:字段的数据格式、数据类型是否符合设定;对不能达到要求的数据进行单独转换;附件文件转存:将爬取的附件文件进行病毒扫描后,重新分配含时间戳的不易重复的文件名,再转存到固定的位置存储,并新增一个数据字段用于记录附件文件的路径和文件名。本专利技术的另一种实现方式,一种基于代工模式的动态网页爬虫系统,包括:业务接口模块:作为与业务相关的用户接口,接收用户输入的业务信息,配置爬虫业务相关参数,进行业务评估,并做好准备工作;所述业务信息包括:业务ID、业务描述、起始URL、登录资料、执行策略、防反爬措施、爬取数据字段与定位和最终导出数据格式;所述准备工作包括业务参数完备性检查、访问通行证准备、小任务尝试、设计数据字段与规范化要求、建立数据库、建立数据表和建立附件存储空间;所述业务评估包括对业务所需的服务器硬件、软件、存储和网络带宽的评估;业务调度模块:根据业务相关信息,在指定时间分配好系统资源,发起多个独立进程的业务爬虫;业务爬虫:采用模拟浏览器模式,对动态网页原始URL进行爬取,并返回目标静态数据内容的URL;生产调度模块:接收由业务爬虫返回的爬取任务,审查URL的有效性和非重复性,并对通过审核的爬取任务构造生产任务消息列表,在分布式集群服务器上发起多个多线程的生产爬虫;生产爬虫:采用自动化程序模式,对含静态内容的URL页面进行爬取,并返回目标数据和附件文件;存储模块:接收生产爬虫返回的目标数据和附件文件,对所述目标数据进行完整性、规范化处理,交将处理后的目标数据和附件文件存入数据库中,形成业务数据;导出模块:根据所述最终导出数据格式导出业务数据,反馈给用户。通过负载均本文档来自技高网...

【技术保护点】
1.一种基于代工模式的动态网页爬虫方法,其特征在于,包括以下步骤:/nS1:接收用户输入的业务信息,配置爬虫业务参数,进行业务评估,并做好准备工作;/nS2:根据所述业务信息,在指定时间分配好系统资源,发起多个独立进程的业务爬虫;/nS3:所述业务爬虫采用模拟浏览器模式,对动态网页原始URL进行爬取,并返回目标静态数据内容的URL;/nS4:审查所述URL的有效性和非重复性,并对通过审查的爬取任务,构造生产任务消息列表,在分布式服务器上发起多个多线程的生产爬虫;/nS5:所述生产爬虫采用自动化程序模式,对含静态内容的URL页面进行爬取,并返回目标数据字段和附件文件;/nS6:对所述目标数据字段进行预处理,预处理后的目标数据字段和所述附件文件形成业务数据,存储所述业务数据;/nS7:导出所述业务数据,反馈给用户。/n

【技术特征摘要】
1.一种基于代工模式的动态网页爬虫方法,其特征在于,包括以下步骤:
S1:接收用户输入的业务信息,配置爬虫业务参数,进行业务评估,并做好准备工作;
S2:根据所述业务信息,在指定时间分配好系统资源,发起多个独立进程的业务爬虫;
S3:所述业务爬虫采用模拟浏览器模式,对动态网页原始URL进行爬取,并返回目标静态数据内容的URL;
S4:审查所述URL的有效性和非重复性,并对通过审查的爬取任务,构造生产任务消息列表,在分布式服务器上发起多个多线程的生产爬虫;
S5:所述生产爬虫采用自动化程序模式,对含静态内容的URL页面进行爬取,并返回目标数据字段和附件文件;
S6:对所述目标数据字段进行预处理,预处理后的目标数据字段和所述附件文件形成业务数据,存储所述业务数据;
S7:导出所述业务数据,反馈给用户。


2.根据权利要求1所述基于代工模式的动态网页爬虫方法,其特征在于,所述业务信息包括业务ID、业务描述、起始URL、登录资料、执行策略、防反爬措施、爬取数据字段与定位和导出数据格式。


3.根据权利要求2所述基于代工模式的动态网页爬虫方法,其特征在于,所述登录资料包括账号、密码和CA证书,所述执行策略为一次性定时增量爬取,所述防反爬措施包括IP代理、浏览器头和CSS偏移。


4.根据权利要求3所述基于代工模式的动态网页爬虫方法,其特征在于,所述步骤S1中准备工作包括:
业务参数完备性检查:确保所述业务信息的完整性;
访问通行证准备:根据所述业务信息,登录目标网站,获取并保存cookies信息,验证所述CA证书;
小任务尝试:根据所述起始URL和所述访问通行证准备,构造小型爬取任务,通过执行情况,分析所述目标网站的字符编码、数据量、访问时长和爬取成功率;
设计数据字段与规范化要求:根据所述业务信息,设计目标数据的字段名称、字段格式、字段长度和规范化要求;
建立数据库、数据表和附件存储空间。


5.根据权利要求1所述基于代工模式的动态网页爬虫方法,其特征在于,所述步骤S1中业务评估包括对业务所需的服务器硬件、软件、存储和网络带宽的评估。


6.根据权利要求5所述的基于代工模式的动态网页爬虫方法,其特征在于,若数据量巨大、生产爬虫并行程度高,则采用分库分表的方式进行存储。


7.根据权利要求1所述基于代工模式的动态网页爬虫方法,其特征在...

【专利技术属性】
技术研发人员:杨杰程克非吴渝李红波叶雯静刘钟书刘洋旗
申请(专利权)人:重庆邮电大学
类型:发明
国别省市:重庆;50

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1