CN111651656B - 一种基于代工模式的动态网页爬虫方法及*** - Google Patents
一种基于代工模式的动态网页爬虫方法及*** Download PDFInfo
- Publication number
- CN111651656B CN111651656B CN202010488720.2A CN202010488720A CN111651656B CN 111651656 B CN111651656 B CN 111651656B CN 202010488720 A CN202010488720 A CN 202010488720A CN 111651656 B CN111651656 B CN 111651656B
- Authority
- CN
- China
- Prior art keywords
- service
- data
- crawling
- crawler
- url
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/951—Indexing; Web crawling techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/955—Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
- G06F16/9566—URL specific, e.g. using aliases, detecting broken or misspelled links
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/30—Computing systems specially adapted for manufacturing
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种基于代工模式的动态网页爬虫方法及***,包括:接收业务信息,配置爬虫参数,业务评估,做准备工作;分配***资源,发起多个独立进程的业务爬虫;采用模拟浏览器模式,对动态网页原始URL进行爬取,并返回目标静态数据内容的URL;审查URL的有效性和非重复性,并审查后的爬取任务,构造生产任务消息列表,发起多个线程的生产爬虫;采用自动化程序模式,对静态的URL页面进行爬取,并返回目标数据和附件文件;对返回内容处理并存储;导出数据。本发明分别构造了业务爬虫和生产爬虫,基于代工模式对动态网页和静态内容采取不同的爬取策略,最大限度地利用***资源,实现对动态网页数据进行大规模、快速爬取。
Description
技术领域
本发明涉及互联网信息检索、搜索引擎技术领域,尤其涉及一种基于代工模式的动态网页爬虫方法及***。
背景技术
网络爬虫是互联网搜索引擎的重要组成部分,主要用于在互联网上抓取网页中的数据,为搜索引擎建立索引。抓取量是否够大,决定搜索引擎的内容是否丰富,抓取是否即时,直接影响搜索引擎的整体效果。在大数据的背景下,网络爬虫也广泛用于网络舆情、商品交易、文体娱乐等网络数据的抓取,为进一步的数据挖掘、数据分析提供海量的基础数据。
通用的网络爬虫其工作原理是通过访问目标网页的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页面进行爬取,并返回目标数据和附件文件;存储模块:接收生产爬虫返回的目标数据和附件文件,对所述目标数据进行完整性、规范化处理,交将处理后的目标数据和附件文件存入数据库中,形成业务数据;导出模块:根据所述最终导出数据格式导出业务数据,反馈给用户。
通过负载均衡将爬取任务均匀分派到分布式服务器上,并以多线程、异步方式启动生产爬虫执行目标数据的爬取;生产爬虫采用自动化程序访问目标URL,根据定位获取目标数据发送给存储模块,同时将任务执行情况进行反馈生产调度模块。由业务调度模块根据业务需求和相关信息发起的若干独立进程、模拟浏览器模式的业务爬虫,执行对动态网页的爬取。***基于代工模式,对动态网页采用模拟浏览器操作、独立进程、同步模式的业务爬虫;在爬取到目标数据静态内容的链接URL后,交由效率更高,采用自动化程序、多线程、异步模式的生产爬虫并行爬取。对业务进行评估的结果,若数据量巨大、生产爬虫并行程度高,则采用分库分表的方式进行存储,以提高存取效率。导出模块按照业务参数中对导出数据格式和形式的要求,从数据库和附件文件中导出爬取数据,同时生成对数据的统计描述信息,打包后交付给用户。
本发明与现有技术相比,具有如下的优点和有益效果:
本发明对动态网页和静态内容采取不同的爬取策略,有针对性地发挥各自优势,最大限度地利用***资源;基于代工模式,将***按照业务功能分为七个模块,模块内部可根据业务具体情况进行配置和改造,模块之间有序调度、相互配合,具有高度的灵活性,能够实现对动态网页进行大规模、快速爬取。
附图说明
此处所说明的附图用来提供对本发明实施例的进一步理解,构成本申请的一部分,并不构成对本发明实施例的限定。在附图中:
图1为本发明的***结构图;
图2为本发明的方法架构图;
图3为本发明的业务接口模块功能图;
图4为本发明的业务爬虫和生产爬虫对应关系和任务单内容。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施例和附图,对本发明作进一步的详细说明,本发明的示意性实施方式及其说明仅用于解释本发明,并不作为对本发明的限定。
在以下描述中,为了提供对本发明的透彻理解阐述了大量特定细节。然而,对于本领域普通技术人员显而易见的是:不必采用这些特定细节来实行本发明。在其他实例中,为了避免混淆本发明,未具体描述公知的结构、电路、材料或方法。
在整个说明书中,对“一个实施例”、“实施例”、“一个示例”或“示例”的提及意味着:结合该实施例或示例描述的特定特征、结构或特性被包含在本发明至少一个实施例中。因此,在整个说明书的各个地方出现的短语“一个实施例”、“实施例”、“一个示例”或“示例”不一定都指同一实施例或示例。此外,可以以任何适当的组合和、或子组合将特定的特征、结构或特性组合在一个或多个实施例或示例中。此外,本领域普通技术人员应当理解,在此提供的示图都是为了说明的目的,并且示图不一定是按比例绘制的。这里使用的术语“和/或”包括一个或多个相关列出的项目的任何和所有组合。
实施例
本实施例是一种基于代工模式的动态网页爬虫***,如图1所示,***结构分为业务接口模块、业务调度模块、业务爬虫、生产调度模块、生产爬虫、存储模块和导出模块七个部分。各部分主要功能如下:
(1)业务接口模块:作为与业务相关的用户接口,接收用户输入,配置爬虫业务相关参数,进行业务评估,并做好相关准备工作;
(2)业务调度模块:根据业务相关信息,在指定时间分配好***资源,发起若干个独立进程的业务爬虫;
(3)业务爬虫:采用模拟浏览器模式,对动态网页原始URL进行爬取,并返回目标静态数据内容的URL;
(4)生产调度模块:接收由业务爬虫返回的爬取任务,审查URL的有效性和非重复,并对通过审核的爬取任务构造生产任务消息列表,在分布式集群服务器上发起若干个多线程的生产爬虫;
(5)生产爬虫:采用自动化程序模式,对含静态内容的URL页面进行爬取,并返回目标数据字段和附件文件;
(6)存储模块:接收生产爬虫返回的数据和附件,对数据字段进行完整性、规范化处理,对附件文件进行转存,将所有数据通过数据库持久化保存;
(7)导出模块:按照业务对最终导出数据格式的要求导出业务数据,反馈给用户。
如图2所示,***各模块之间的关系与工业代工生产相关环节相对应,在各模块内部,可根据业务具体情况进行配置和改造,模块之间有序调度、相互配合,具有高度的灵活性。在爬取生产过程中,对动态网页采用模拟浏览器操作、独立进程、同步模式的业务爬虫;在爬取到目标数据静态内容的链接URL后,交由效率更高,采用自动化程序、多线程、异步模式的生产爬虫并行爬取。
在具体实施过程中,可根据业务实际工作量的情况部署硬件服务器。如果业务量较大,可以每个模块分别部署硬件服务器,其中业务爬虫和生产爬虫可以部署为分布式集群***,存储模块可以按各数据库部署多台服务器;如果业务量不大,可以将业务接口模块、业务调度模块及业务爬虫合并在一台服务器上,生产调度模块、生产爬虫、存储模块和导出模块部署在一台服务器上;如果业务量确实较小,甚至可以将所有模块部署在一台服务器上。
如图2所示,***首先接收用户输入爬虫业务相关信息作为后续启动排产的参数,具体内容包括:业务ID、业务描述、起始URL、登录资料(账号、密码、CA证书等)、执行策略(一次性爬取,定时增量爬取)、防反爬措施(IP代理,浏览器头,CSS偏移等)、爬取数据字段与定位及最终导出数据格式等业务相关信息;所有信息由用户编辑后通过Json格式的文件保存,***通过读取Json文件获取业务参数信息。
业务接口模块负责与用户交互接收用户输入的相关参数,并进行审查评估与业务准备,主要功能如图3所示。
其中,业务接口模块中的业务评估包括对业务所需的服务器硬件、软件、存储、网络带宽等资源的评估;结合当前***的运行状态和资源情况,判断是否能够立即承接该业务;若能承接则着手进行业务准备,若不能承接则反馈给用户,暂不立即执行。
业务接口模块中的相关准备工作包括:
(1)业务参数完备性检查:用户输入的业务相关信息完整,***能够依据相关参数执行爬取任务;
(2)访问通行证准备:根据登录资料登录目标网站,获取并保存cookies信息,或者验证CA证书,确保账户能够成功登录;有的网站,在登录后直接获取的cookies个别键名与携带cookies访问网络的键名并不一样,因此,在初次获取到cookies后要验证是否能够成功登录,若不能,则需要进一步检查cookies的键名;
(3)小任务尝试:根据业务参数中的起始URL和访问通行证,构造小型爬取任务,通过执行情况,分析目标网页的字符编码、数据量、访问时长、爬取成功率等信息,为下一步安排正式爬取任务提供资源安排参考信息;
(4)设计数据字段与规范化要求:根据爬取目标和业务要求,设计目标数据的字段名称、字段格式、字段长度以及规范化要求;
(5)为该业务建立数据库、数据表、附件存储空间等持久化存储相关资源。
如图2所示,在小任务尝试爬取成功,存储规范与空间准备完成后,可进入排产阶段,首先进行任务分解,由业务调度模块根据业务需求和相关信息发起的若干独立进程、模拟浏览器模式的业务爬虫,执行对动态网页的爬取。
调度业务爬虫的执行策略分为一次性爬取和定时增量爬取两种方式。一次性爬取,就是根据目标网页URL、关键字、更新时间、最大页数及最大深度等信息,一次执行完全部爬取任务。定时增量爬取,就是在指定的爬取时间开启爬取任务,先从数据库或日志记录中找到最近一次爬取的位置,再对新增加的内容进行爬取。可根据业务要求设置爬取策略方式。
如果采用定时增量爬取方式,要注意爬取前再次检查访问通行证的有效性,防止爬取任务的间隔时间超出目标网站设定的用户登录过期时间。若访问通行证已过有效期,则需要再次获取。
业务爬虫可以模拟浏览器鼠标点击、滚动条滑动、键盘输入、复制粘贴等动作,采用同步方式,将目标页面的链接URL发送给生产调度模块,同时将任务执行情况反馈给业务调度模块。具体实施时可采用Selenium、PhantomJS等开发实现。
生产调度模块在接收到由业务爬虫返回的爬取任务后,组成任务消息队列,依次进入审核处理,具体步骤为:
首先,通过合法性规则审查URL的有效性;
然后,将URL用Hash算法映射到HashMap的Key上,采用布隆过滤器审查该业务的URL是否有重复;若有,则丢弃,并进行日志记录;若无,则在分布式集群服务器上发起生产爬虫,执行对静态网页的爬取。
生产调度模块通过负载均衡将爬取任务均匀分派到分布式服务器上,并以多线程、异步方式启动生产爬虫执行目标数据的爬取;生产爬虫采用自动化程序访问目标URL,根据定位获取目标数据发送给存储模块,同时将任务执行情况反馈给生产调度模块。具体实施时可采用Scrapy、Urllib、Requests等开发实现。
如果目标网站设置有反爬虫措施,则在开启生产爬虫时依据防反爬策略进行爬取。在具体实施时,可先将常规的防反爬功能如IP代理、访问频率调节、User-Agent定制等实现好,如果目标网站还采用了其他反爬虫策略,可再根据具体情况针对性地扩充防反爬虫策略。
业务爬虫和生产爬虫总体上是1:N的对应关系,其具体任务单包含的内容如图4所示。在生产爬虫上应能够根据业务爬虫ID进行溯源,在遇到爬取异常时,可以从日志中查找对应的业务爬虫以及其它由此业务爬虫派出的爬虫执行情况进行分析。对于数据字段在页面上的定位,在具体实施时可采用多种方式,如find、CSS、XPath等,为了书写的简便和查找的方便,一般采用XPath方式。
如图2所示,存储模块接收生产爬虫抓取的数据和附件放入缓存中,对数据进行预处理后再转到数据库中持久化存储。数据预处理包括:
(1)数据完整性检查:指定要爬取的字段是否完整,数据内容是否达到要求;对不能达到要求的数据可根据严重程度进行纠正、标注或丢弃;
(2)字段规范化处理:字段的数据格式、数据类型是否符合设定;对不能达到要求的数据进行单独转换(例如新浪微博和有的论坛网站,对新发布帖子的时间描述为**分钟之前,或者对日期用“今天”“昨天”来表示,这就需要转换为标准的日期时间格式);
(3)附件文件转存:将爬取的附件文件进行病毒扫描后,重新分配含时间戳的不易重复的文件名,再转存到固定的位置存储,并新增一个数据字段用于记录附件文件的路径和文件名等信息。
数据库持久化存储过程中,根据前面对业务进行评估的结果,若数据量巨大、生产爬虫并行程度高,则采用分库分表的方式进行存储,以提高存取效率。具体实施时,一般按水平方式进行切分,一条记录的存储位置选择可采用取模的方式,即idmodn,然后存到数据库中;如果前期业务估计不足或者后期执行计划有变,以至于数据库存储资源需要扩容,可以再增加数据库及服务器。
导出模块按照业务参数中对导出数据格式和形式的要求,从数据库和附件文件中导出爬取数据,同时生成对数据的统计描述信息,打包后交付给用户。具体实施时,可开发一个用户界面,输入业务ID或相关信息,查看当前业务执行情况、数据量规模等信息,然后按既定的规则由***管理员或授权账户操作导出。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (6)
1.一种基于代工模式的动态网页爬虫方法,其特征在于,包括以下步骤:
S1:接收用户输入的业务信息,配置爬虫业务参数,进行业务评估,并做好准备工作;
S2:根据所述业务信息,在指定时间分配好***资源,发起多个独立进程的业务爬虫;
S3:所述业务爬虫采用模拟浏览器模式,对动态网页原始URL进行爬取,并返回目标静态数据内容的URL;
S4:审查所述URL的有效性和非重复性,并对通过审查的爬取任务,构造生产任务消息列表,在分布式服务器上发起多个多线程的生产爬虫;
S5:所述生产爬虫采用自动化程序模式,对含静态内容的URL页面进行爬取,并返回目标数据字段和附件文件;
S6:对所述目标数据字段进行预处理,预处理后的目标数据字段和所述附件文件形成业务数据,存储所述业务数据;
S7:导出所述业务数据,反馈给用户;
其中,所述业务信息包括业务ID、业务描述、起始URL、登录资料、执行策略、防反爬措施、爬取数据字段与定位和导出数据格式;
其中,所述登录资料包括账号、密码和CA证书,所述执行策略为一次性定时增量爬取,所述防反爬措施包括IP代理、浏览器头和CSS偏移;
其中,所述步骤S1中准备工作包括:
业务参数完备性检查:确保所述业务信息的完整性;
访问通行证准备:根据所述业务信息,登录目标网站,获取并保存cookies信息,验证所述CA证书;
小任务尝试:根据所述起始URL和所述访问通行证准备,构造小型爬取任务,通过执行情况,分析所述目标网站的字符编码、数据量、访问时长和爬取成功率;
设计数据字段与规范化要求:根据所述业务信息,设计目标数据的字段名称、字段格式、字段长度和规范化要求;
建立数据库、数据表和附件存储空间;
其中,所述步骤S1中业务评估包括对业务所需的服务器硬件、软件、存储和网络带宽的评估。
2.根据权利要求1所述的基于代工模式的动态网页爬虫方法,其特征在于,若数据量巨大、生产爬虫并行程度高,则采用分库分表的方式进行存储。
3.根据权利要求1所述基于代工模式的动态网页爬虫方法,其特征在于,所述步骤S3中,所述模拟浏览器模式包括模拟浏览器鼠标点击、滚动条滑动、键盘输入和复制粘贴。
4.根据权利要求1所述基于代工模式的动态网页爬虫方法,其特征在于,所述步骤S4包括以下子步骤:
S01:通过合法性规则审查URL的有效性;
S02:通过Hash算法将URL映射到HashMap的Key上,采用布隆过滤器审查URL是否重复;若重复,则丢弃,并进行日志记录。
5.根据权利要求1所述基于代工模式的动态网页爬虫方法,其特征在于,所述步骤S6中,对所述目标数据字段进行预处理,详细内容如下:
数据完整性检查:指定要爬取的字段是否完整,数据内容是否达到要求;对不能达到要求的数据可根据严重程度进行纠正、标注或丢弃;
字段规范化处理:字段的数据格式、数据类型是否符合设定;对不能达到要求的数据进行单独转换;
附件文件转存:将爬取的附件文件进行病毒扫描后,重新分配含时间戳的不易重复的文件名,再转存到固定的位置存储,并新增一个数据字段用于记录附件文件的路径和文件名。
6.一种基于代工模式的动态网页爬虫***,其特征在于,包括:
业务接口模块:作为与业务相关的用户接口,接收用户输入的业务信息,配置爬虫业务相关参数,进行业务评估,并做好准备工作;所述业务信息包括:业务ID、业务描述、起始URL、登录资料、执行策略、防反爬措施、爬取数据字段与定位和最终导出数据格式;所述准备工作包括业务参数完备性检查、访问通行证准备、小任务尝试、设计数据字段与规范化要求、建立数据库、建立数据表和建立附件存储空间;所述业务评估包括对业务所需的服务器硬件、软件、存储和网络带宽的评估;
业务调度模块:根据业务相关信息,在指定时间分配好***资源,发起多个独立进程的业务爬虫;
业务爬虫:采用模拟浏览器模式,对动态网页原始URL进行爬取,并返回目标静态数据内容的URL;
生产调度模块:接收由业务爬虫返回的爬取任务,审查URL的有效性和非重复性,并对通过审核的爬取任务构造生产任务消息列表,在分布式集群服务器上发起多个多线程的生产爬虫;
生产爬虫:采用自动化程序模式,对含静态内容的URL页面进行爬取,并返回目标数据和附件文件;
存储模块:接收生产爬虫返回的目标数据和附件文件,对所述目标数据进行完整性、规范化处理,交将处理后的目标数据和附件文件存入数据库中,形成业务数据;
导出模块:根据所述最终导出数据格式导出业务数据,反馈给用户;
其中,所述业务参数完备性检查,是指:确保所述业务信息的完整性;
所述访问通行证准备,是指:根据所述业务信息,登录目标网站,获取并保存cookies信息,验证CA证书;
所述小任务尝试,是指:根据所述起始URL和所述访问通行证准备,构造小型爬取任务,通过执行情况,分析所述目标网站的字符编码、数据量、访问时长和爬取成功率;
所述设计数据字段与规范化要求,是指:根据所述业务信息,设计目标数据的字段名称、字段格式、字段长度和规范化要求。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010488720.2A CN111651656B (zh) | 2020-06-02 | 2020-06-02 | 一种基于代工模式的动态网页爬虫方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010488720.2A CN111651656B (zh) | 2020-06-02 | 2020-06-02 | 一种基于代工模式的动态网页爬虫方法及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111651656A CN111651656A (zh) | 2020-09-11 |
CN111651656B true CN111651656B (zh) | 2023-02-24 |
Family
ID=72352714
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010488720.2A Active CN111651656B (zh) | 2020-06-02 | 2020-06-02 | 一种基于代工模式的动态网页爬虫方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111651656B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112836108A (zh) * | 2021-01-29 | 2021-05-25 | 宝宝巴士股份有限公司 | 一种爬取第三方网站数据的方法及终端 |
CN113821705B (zh) * | 2021-08-30 | 2024-02-20 | 湖南大学 | 网页内容的获取方法、终端设备及可读存储介质 |
CN116433032B (zh) * | 2023-04-26 | 2024-04-09 | 中国农业科学院农业环境与可持续发展研究所 | 基于网络爬虫方式的智能评估方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070022085A1 (en) * | 2005-07-22 | 2007-01-25 | Parashuram Kulkarni | Techniques for unsupervised web content discovery and automated query generation for crawling the hidden web |
CN102937989B (zh) * | 2012-10-29 | 2016-06-22 | 北京腾逸科技发展有限公司 | 并行化分布式互联网数据抓取方法及其*** |
CN104899323B (zh) * | 2015-06-19 | 2018-09-11 | 成都国腾实业集团有限公司 | 一种用于idc有害信息监测平台的爬虫*** |
CN105243159B (zh) * | 2015-10-28 | 2019-06-25 | 福建亿榕信息技术有限公司 | 一种基于可视化脚本编辑器的分布式网络爬虫*** |
CN105608134B (zh) * | 2015-12-18 | 2019-06-14 | 盐城工学院 | 一种基于多线程的网络爬虫***及其网页爬取方法 |
-
2020
- 2020-06-02 CN CN202010488720.2A patent/CN111651656B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN111651656A (zh) | 2020-09-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111651656B (zh) | 一种基于代工模式的动态网页爬虫方法及*** | |
CN107895009B (zh) | 一种基于分布式的互联网数据采集方法及*** | |
US10769228B2 (en) | Systems and methods for web analytics testing and web development | |
WO2020119434A1 (zh) | 接口数据处理方法、自动化测试方法、装置、设备和介质 | |
US20190012338A1 (en) | Hierarchical diff files | |
US9118549B2 (en) | Systems and methods for context management | |
US8793278B2 (en) | System and method for data preservation and retrieval | |
US7334220B2 (en) | Data driven test automation of web sites and web services | |
US9106630B2 (en) | Method and system for collaboration during an event | |
US20130325871A1 (en) | Method and System for Collecting and Organizing Data Corresponding to an Event | |
US20130325792A1 (en) | Method and System for Analyzing Data Related to an Event | |
US11481361B1 (en) | Cascading payload replication to target compute nodes | |
Lakshmi et al. | An overview of preprocessing on web log data for web usage analysis | |
CN109819019B (zh) | 用于大规模网络数据采集的监控与统计分析方法和*** | |
CN116028192A (zh) | 一种多源异构数据采集方法、装置和存储介质 | |
Shivaprasad et al. | Knowledge discovery from web usage data: An efficient implementation of web log preprocessing techniques | |
US20040111706A1 (en) | Analysis of latencies in a multi-node system | |
WO2022155685A1 (en) | Web attack simulator | |
EP2698966B1 (en) | Tracking end-users in web databases | |
Panum et al. | Kraaler: A user-perspective web crawler | |
Chehadeh et al. | Investigating distribution of data of http traffic: An empirical study | |
CN111680200A (zh) | 用户行为数据的采集方法、装置、设备及存储介质 | |
CN108664646A (zh) | 一种基于关键字的音视频自动下载*** | |
Estupiñán | Analysis of Modern Blockchain Networks Using Graph Databases | |
Riehle | Analysis of ignored patches in the linux kernel development |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |