CN112818201A - 一种网络数据采集方法、装置、计算机设备及存储介质 - Google Patents
一种网络数据采集方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN112818201A CN112818201A CN202110169027.3A CN202110169027A CN112818201A CN 112818201 A CN112818201 A CN 112818201A CN 202110169027 A CN202110169027 A CN 202110169027A CN 112818201 A CN112818201 A CN 112818201A
- Authority
- CN
- China
- Prior art keywords
- task
- grabbing
- data
- executed
- queue
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 47
- 230000006399 behavior Effects 0.000 claims abstract description 61
- 238000004088 simulation Methods 0.000 claims description 18
- 238000004458 analytical method Methods 0.000 claims description 12
- 238000012545 processing Methods 0.000 claims description 12
- 238000012360 testing method Methods 0.000 claims description 10
- 238000004891 communication Methods 0.000 claims description 9
- 230000008569 process Effects 0.000 claims description 8
- 238000004590 computer program Methods 0.000 claims description 7
- 238000007405 data analysis Methods 0.000 claims description 6
- 238000013500 data storage Methods 0.000 claims description 6
- 238000000605 extraction Methods 0.000 claims description 6
- 238000004140 cleaning Methods 0.000 claims description 4
- 230000009193 crawling Effects 0.000 claims description 3
- 238000001514 detection method Methods 0.000 abstract description 4
- 238000012423 maintenance Methods 0.000 abstract description 4
- 238000009877 rendering Methods 0.000 abstract description 2
- 238000013461 design Methods 0.000 description 22
- 238000010586 diagram Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- VYZAMTAEIAYCRO-UHFFFAOYSA-N Chromium Chemical compound [Cr] VYZAMTAEIAYCRO-UHFFFAOYSA-N 0.000 description 2
- 230000009471 action Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000003672 processing method Methods 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- BUGBHKTXTAQXES-UHFFFAOYSA-N Selenium Chemical compound [Se] BUGBHKTXTAQXES-UHFFFAOYSA-N 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 235000014510 cooky Nutrition 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 230000009849 deactivation Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000013515 script Methods 0.000 description 1
- 229910052711 selenium Inorganic materials 0.000 description 1
- 239000011669 selenium Substances 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
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/958—Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
Abstract
本发明涉及计算机网络技术领域,公开了一种网络数据采集方法、装置、计算机设备及存储介质。通过本发明创造,提供了一种基于模拟用户行为工具Se l n ium的网络数据采集方案,即可以在获取待执行抓取任务后,应用模拟用户行为工具Se l n ium依次执行排序的抓取任务,然后解析抓取的网页内容,得到可存放的结构化数据,从而可通过模拟真实用户行为绕过目标服务器的用户行为检测,拿到真实的数据,不但可以提升采集效率和质量,降低维护成本,还可以很好的隐藏自身的行为,具有很强的隐蔽性,而且不用详细分析网页接口与页面渲染,具有高便利性和通用性。
Description
技术领域
本发明属于计算机网络技术领域,具体地涉及一种网络数据采集方法、装置、计算机设备及存储介质。
背景技术
随着计算机网络技术的不断发展,网上信息的获取已经成为人们认识事件的主要途径之一,面对每时每刻都会产生得大量网络信息资源,人们往往会陷入窘迫的境地,一方面收到的海量信息无从选择和消化,使得其淹没在繁杂的信息中,另一方面是信息迷失,人们难于找到自己真正需要的信息;因此,如何能够快速高效地采集和抓取网络站点是现如今人们对于获取网络信息的迫切需求。
在采集和抓取网络站点的数据时,会发现很多网站数据需要通过登录验证才可以展示页面内容,或者是需要在整个页面的DOM(Document Object Mode,文档对象模型)结构加载完之后才会执行。如果使用常规的网络爬虫方法直接获取页面内容,则无法获取到需要的数据内容,这大大降低了网络数据采集的效率和质量。而如果需要获取到登录验证的数据或者网页加载完毕展示的数据,就需要对网站的请求的数据源地址进行分析或者记录下网站的登录验证cookie,而这种方法会导致爬虫的时效性降低,需要持续地获取网络爬虫的登录密钥,增加了网络数据采集的维护成本。
发明内容
为了解决现有网络数据采集方法所存在需要检测用户行为及需要用户登陆等,导致采集效率低、质量差和维护成本高的问题,本发明目的在于提供一种网络数据采集方法、装置、计算机设备及存储介质,可以在获取待执行抓取任务后,应用模拟用户行为工具Selnium依次执行排序的抓取任务,然后解析抓取的网页内容,得到可存放的结构化数据,从而可通过模拟真实用户行为绕过目标服务器的用户行为检测,拿到真实的数据,不但可以提升采集效率和质量,降低维护成本,还可以很好的隐藏自身的行为,具有很强的隐蔽性,而且不用详细分析网页接口与页面渲染,具有高便利性和通用性。
第一方面,本发明提供了一种网络数据采集方法,包括:
访问用于存放抓取任务的第一数据库,获取至少一个待执行抓取任务,其中,所述抓取任务包含有待爬取统一资源定位符URL地址;
将所述至少一个待执行抓取任务添加到当前任务队列中,得到新任务队列,其中,所述新任务队列包含有按照执行先后顺序依次排列的至少一个待执行抓取任务;
应用模拟用户行为工具Selnium依次执行在所述新任务队列中的各个待执行抓取任务,以便通过所述模拟用户行为工具Selnium模拟用户使用浏览器和对应任务的所述待爬取统一资源定位符URL地址进行网页访问,并下载获取网页内容;
解析所述网页内容,获取至少一个解析数据;
根据所述至少一个解析数据,获取至少一个结构化数据;
将所述至少一个结构化数据存放到第二数据库中。
基于上述发明内容,提供了一种基于模拟用户行为工具Selnium的网络数据采集方案,即可以在获取待执行抓取任务后,应用模拟用户行为工具Selnium依次执行排序的抓取任务,然后解析抓取的网页内容,得到可存放的结构化数据,从而可通过模拟真实用户行为绕过目标服务器的用户行为检测,拿到真实的数据,不但可以提升采集效率和质量,降低维护成本,还可以很好的隐藏自身的行为,具有很强的隐蔽性,而且不用详细分析网页接口与页面渲染,具有高便利性和通用性。
在一个可能的设计中,访问用于存放抓取任务的第一数据库,获取至少一个待执行抓取任务,包括:
周期性地访问所述第一数据库,查找到在所述第一数据库中存放的多个抓取任务,其中,所述抓取任务还包含有抓取开关状态、最近执行时间和预设执行周期;
针对所述多个抓取任务中的各个抓取任务,若对应任务的所述抓取开关状态为打开状态且当前访问时间至对应任务的所述最近执行时间的时间差大于或等于对应任务的所述预设执行周期,则将该抓取任务作为所述待执行抓取任务。
在一个可能的设计中,将所述至少一个待执行抓取任务添加到当前任务队列中,得到新任务队列,包括:
针对所述至少一个待执行抓取任务中的各个待执行抓取任务,根据对应任务中的预设优先级和/或对应任务的队列添加时间,计算得到对应的任务优先指标值,其中,所述任务优先指标值用于表征抓取任务的执行先后顺序;
针对所述至少一个待执行抓取任务中的各个待执行抓取任务,根据对应任务的所述任务优先指标值,将该待执行抓取任务排列到所述当前任务队列中,得到所述新任务队列。
在一个可能的设计中,应用模拟用户行为工具Selnium依次执行在所述新任务队列中的各个待执行抓取任务,包括:
将所述新任务队列中的各个待执行抓取任务依次地且一一对应地分配给多任务执行单元中的各个任务执行单元,以便由所述任务执行单元应用所述模拟用户行为工具Selnium的分布式测试用例执行分配到的待执行抓取任务,其中,所述多任务执行单元包括有启动多进程的本地服务器和/或至少一个从属服务器,所述本地服务器通过分布式网络通信连接所述至少一个从属服务器。
在一个可能的设计中,下载获取网页内容,包括有如下步骤S301~S303:
S301.在打开网页内容后,通过所述模拟用户行为工具Selnium模拟用户的目标识别行为,以便判断所述页面内容是否为抓取目标;
S302.若是,则下载获取所述网页内容,否则执行步骤S303;
S303.通过所述模拟用户行为工具Selnium模拟用户的点击操作行为/和用户登录行为,以便打开下一个网页内容,然后返回执行步骤S301。
在一个可能的设计中,根据所述至少一个解析数据,获取至少一个结构化数据,包括:
根据预设提取规则,从所述至少一个解析数据中提取出符合所述预设提取规则的至少一个目标数据;
针对所述至少一个目标数据中的各个目标数据,判断对应的数据形式是否为网页链接地址形式,若否,则进一步判断对应的数据字段信息是否有缺失;
针对所述至少一个目标数据中的各个目标数据,若判定对应的数据字段信息有缺失,则删除该目标数据,否则对该目标数据进行数据清洗处理和结构化处理,得到所述结构化数据。
在一个可能的设计中,在针对所述至少一个目标数据中的各个目标数据,判断对应的数据形式是否为网页链接地址形式之后,所述方法还包括:
若是,则生成一个新抓取任务,并将所述新抓取任务作为待执行抓取任务添加到当前任务队列中,其中,所述新抓取任务包含有该目标数据中的统一资源定位符URL地址。
基于上述可能设计,可以在解析网页内容后,若识别到新的统一资源定位符URL地址,可以基于该统一资源定位符URL地址自动新增抓取任务,从而采集获取更多的网络数据,进一步提升模拟用户行为的能力。
第二方面,本发明提供了一种网络数据采集装置,包括有依次通信连接的任务获取模块、任务添加模块、任务执行模块、数据解析模块、数据处理模块和数据存放模块;
所述任务获取模块,用于访问用于存放抓取任务的第一数据库,获取至少一个待执行抓取任务,其中,所述抓取任务包含有待爬取统一资源定位符URL地址;
所述任务添加模块,用于将所述至少一个待执行抓取任务添加到当前任务队列中,得到新任务队列,其中,所述新任务队列包含有按照执行先后顺序依次排列的至少一个待执行抓取任务;
所述任务执行模块,用于应用模拟用户行为工具Selnium依次执行在所述新任务队列中的各个待执行抓取任务,以便通过所述模拟用户行为工具Selnium模拟用户使用浏览器和对应任务的所述待爬取统一资源定位符URL地址进行网页访问,并下载获取网页内容;
所述数据解析模块,用于解析所述网页内容,获取至少一个解析数据;
所述数据处理模块,用于根据所述至少一个解析数据,获取至少一个结构化数据;
所述数据存放模块,用于将所述至少一个结构化数据存放到第二数据库中。
第三方面,本发明提供了一种计算机设备,包括有依次通信连接的存储器、处理器和收发器,其中,所述存储器用于存储计算机程序,所述收发器用于收发信息,所述处理器用于读取所述计算机程序,执行如第一方面或任意可能设计所述的网络数据采集方法。
第四方面,本发明提供了一种存储介质,所述存储介质上存储有指令,当所述指令在计算机上运行时,执行如上第一方面或任意可能设计所述的网络数据采集方法。
第五方面,本发明提供了一种包含指令的计算机程序产品,当所述指令在计算机上运行时,使所述计算机执行如上第一方面或任意可能设计所述的网络数据采集方法。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的网络数据采集方法的流程示意图。
图2是本发明提供的网络数据采集装置的结构示意图。
图3是本发明提供的计算机设备的结构示意图。
具体实施方式
下面结合附图及具体实施例来对本发明作进一步阐述。在此需要说明的是,对于这些实施例方式的说明虽然是用于帮助理解本发明,但并不构成对本发明的限定。本文公开的特定结构和功能细节仅用于描述本发明示例的实施例。然而,可用很多备选的形式来体现本发明,并且不应当理解为本发明限制在本文阐述的实施例中。
应当理解,尽管本文可能使用术语第一、第二等等来描述各种单元,但是这些单元不应当受到这些术语的限制。这些术语仅用于区分一个单元和另一个单元。例如可以将第一单元称作第二单元,并且类似地可以将第二单元称作第一单元,同时不脱离本发明示例的实施例的范围。
应当理解,对于本文中可能出现的术语“和/或”,其仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,单独存在B,同时存在A和B三种情况;对于本文中可能出现的术语“/和”,其是描述另一种关联对象关系,表示可以存在两种关系,例如,A/和B,可以表示:单独存在A,单独存在A和B两种情况;另外,对于本文中可能出现的字符“/”,一般表示前后关联对象是一种“或”关系。
应当理解,在本文中若将单元称作与另一个单元“连接”、“相连”或“耦合”时,它可以与另一个单元直相连接或耦合,或中间单元可以存在。相対地,在本文中若将单元称作与另一个单元“直接相连”或“直接耦合”时,表示不存在中间单元。另外,应当以类似方式来解释用于描述单元之间的关系的其他单词(例如,“在……之间”对“直接在……之间”,“相邻”对“直接相邻”等等)。
应当理解,本文使用的术语仅用于描述特定实施例,并不意在限制本发明示例的实施例。若本文所使用的,单数形式“一”、“一个”以及“该”意在包括复数形式,除非上下文明确指示相反意思。还应当理解,若术语“包括”、“包括了”、“包含”和/或“包含了”在本文中被使用时,指定所声明的特征、数量、步骤、操作、单元和/或组件的存在性,并且不排除一个或多个其他特征、数量、步骤、操作、单元、组件和/或他们的组合存在性或增加。
应当理解,还应当注意到在一些备选可能设计中,所出现的功能/动作可能与附图出现的顺序不同。例如,取决于所涉及的功能/动作,实际上可以实质上并发地执行,或者有时可以以相反的顺序来执行连续示出的两个图。
应当理解,在下面的描述中提供了特定的细节,以便于对示例实施例的完全理解。然而,本领域普通技术人员应当理解可以在没有这些特定细节的情况下实现示例实施例。例如可以在框图中示出系统,以避免用不必要的细节来使得示例不清楚。在其他实例中,可以不以非必要的细节来示出众所周知的过程、结构和技术,以避免使得示例实施例不清楚。
如图1所示,本实施例第一方面提供的所述网络数据采集方法,可以但不限于由具有一定计算资源的计算机设备执行,例如由应用网络爬虫技术的服务器执行。所述网络数据采集方法,可以但不限于包括有如下步骤S101~S106。
S101.访问用于存放抓取任务的第一数据库,获取至少一个待执行抓取任务,其中,所述抓取任务包含有待爬取统一资源定位符URL(Uniform Resource Locator)地址。
在所述步骤S101中,所述第一数据库存放有多个预先配置好的抓取任务,并为了使抓取任务清晰化及更好地被执行,所述抓取任务除了包含有所述待爬取统一资源定位符URL地址之外,还可以但不限于包含有抓取开关状态(即包含有对应启用的打开状态和对应停用的关闭状态等)、最近执行时间、预设执行周期、预设优先级(可举例包括0~9级,9级最高,0级最低)、网络爬虫类型、新增抓取任务时间、最近更新任务时间和任务状态,等等。此外,访问用于存放抓取任务的第一数据库,获取至少一个待执行抓取任务,包括但不限于有:周期性地访问所述第一数据库,查找到在所述第一数据库中存放的多个抓取任务,其中,所述抓取任务还包含有抓取开关状态、最近执行时间和预设执行周期;针对所述多个抓取任务中的各个抓取任务,若对应任务的所述抓取开关状态为打开状态且当前访问时间至对应任务的所述最近执行时间的时间差大于或等于对应任务的所述预设执行周期,则将该抓取任务作为所述待执行抓取任务。前述周期性地访问所述第一数据库的周期可举例为5分钟。
S102.将所述至少一个待执行抓取任务添加到当前任务队列中,得到新任务队列,其中,所述新任务队列包含有按照执行先后顺序依次排列的至少一个待执行抓取任务。
在所述步骤S102中,具体的,将所述至少一个待执行抓取任务添加到当前任务队列中,得到新任务队列,包括但不限于有:针对所述至少一个待执行抓取任务中的各个待执行抓取任务,根据对应任务中的预设优先级和/或对应任务的队列添加时间,计算得到对应的任务优先指标值,其中,所述任务优先指标值用于表征抓取任务的执行先后顺序;针对所述至少一个待执行抓取任务中的各个待执行抓取任务,根据对应任务的所述任务优先指标值,将该待执行抓取任务排列到所述当前任务队列中,得到所述新任务队列。所述任务优先指标值的计算原则可以但不限于为:优先执行优先级较高的抓取任务,相同优先级的多个抓取任务按照添加任务的时间进行先后顺序执行。此外,所述任务队列可采用redis的有序集合,它具有排序和去重的功能,能够有效地实现任务优先级和任务去重等操作。
S103.应用模拟用户行为工具Selnium依次执行在所述新任务队列中的各个待执行抓取任务,以便通过所述模拟用户行为工具Selnium模拟用户使用浏览器和对应任务的所述待爬取统一资源定位符URL地址进行网页访问,并下载获取网页内容。
在所述步骤S103中,所述模拟用户行为工具Selnium是一个web的现有自动化测试工具,该工具Selenium通过测试可直接运行在浏览器中,就像真正的用户在操作一样。所述模拟用户行为工具Selnium可测试预制应用程序是否能够很好地在不同浏览器和操作系统上工作,并具有如下优点:免费;小巧,对于不同的语言它只是一个包;支持C、Python、java和C#多种语言的测试脚本;支持多平台:windows、linux和Mac;支持多浏览器:ie、chrome、firefox和safari;支持分布式测试用例的执行,可以把测试用例分布到不同的测试机器上执行。因此优化的,在应用模拟用户行为工具Selnium依次执行在所述新任务队列中的各个待执行抓取任务时,可将所述新任务队列中的各个待执行抓取任务依次地且一一对应地分配给多任务执行单元中的各个任务执行单元,以便由所述任务执行单元应用所述模拟用户行为工具Selnium的分布式测试用例执行分配到的待执行抓取任务,其中,所述多任务执行单元包括有启动多进程(即一个进程对应一个任务执行单元)的本地服务器和/或至少一个从属服务器,所述本地服务器通过分布式网络通信连接所述至少一个从属服务器。
在所述步骤S103中,所述模拟用户行为工具Selnium模拟用户的行为可在由用户基于现有常规手段编辑行为代码(例如用于判断页面内容是否为抓取目标的目标识别行为代码,用于执行点击操作动作的点击操作行为代码和用于执行用户登录动作的用户登录行为代码,等等)后,执行该行为代码实现。具体的,所述下载获取网页内容,包括但不限于有如下步骤S301~S303:S301.在打开网页内容后,通过所述模拟用户行为工具Selnium模拟用户的目标识别行为,以便判断所述页面内容是否为抓取目标;S302.若是,则下载获取所述网页内容,否则执行步骤S303;S303.通过所述模拟用户行为工具Selnium模拟用户的点击操作行为/和用户登录行为,以便打开下一个网页内容,然后返回执行步骤S301。此外,所述浏览器可以但不限于采用ie、chrome、firefox和safari等。
S104.解析所述网页内容,获取至少一个解析数据。
在所述步骤S104中,具体解析方式为现有常规方式,所述解析数据的数据格式可以但不限于包括有新闻标题、发布时间、抓取来源、正文内容、抓取源链接地址、用于超链接的网页链接地址、新闻作者、正文头图和新闻视频等。
S105.根据所述至少一个解析数据,获取至少一个结构化数据。
在所述步骤S105中,具体的,根据所述至少一个解析数据,获取至少一个结构化数据,包括但不限于有:根据预设提取规则,从所述至少一个解析数据中提取出符合所述预设提取规则的至少一个目标数据;针对所述至少一个目标数据中的各个目标数据,判断对应的数据形式是否为网页链接地址形式,若否,则进一步判断对应的数据字段信息是否有缺失;针对所述至少一个目标数据中的各个目标数据,若判定对应的数据字段信息有缺失,则删除该目标数据,否则对该目标数据进行数据清洗处理和结构化处理,得到所述结构化数据。前述的数据字段信息缺失判断方法、数据清洗处理方法和结构化处理方法均可基于现有技术手段常规改动得到。
S106.将所述至少一个结构化数据存放到第二数据库中。
在所述步骤S106中,具体的,可将所述至少一个结构化数据按照一定的格式分类存放到所述第二数据库中。此外,所述第二数据库可以但不限于采用kafka数据库和Mongodb数据库等,并可以与所述第一数据库为同一个数据库。
由此基于前述步骤S101~S106所详细描述的网络数据采集方法,提供了一种基于模拟用户行为工具Selnium的网络数据采集方案,即可以在获取待执行抓取任务后,应用模拟用户行为工具Selnium依次执行排序的抓取任务,然后解析抓取的网页内容,得到可存放的结构化数据,从而可通过模拟真实用户行为绕过目标服务器的用户行为检测,拿到真实的数据,不但可以提升采集效率和质量,降低维护成本,还可以很好的隐藏自身的行为,具有很强的隐蔽性,而且不用详细分析网页接口与页面渲染,具有高便利性和通用性。
本实施例在前述第一方面的技术方案基础上,还具体提供了一种自动新增抓取任务的可能设计一,即在针对所述至少一个目标数据中的各个目标数据,判断对应的数据形式是否为网页链接地址形式之后,所述方法还包括但不限于有:若是,则生成一个新抓取任务,并将所述新抓取任务作为待执行抓取任务添加到当前任务队列中,其中,所述新抓取任务包含有该目标数据中的统一资源定位符URL地址。此外,在生成所述新抓取任务时,可以默认对应的预设优先级为0~9级中的任意一级。
由此基于前述可能设计一,可以在解析网页内容后,若识别到新的统一资源定位符URL地址,可以基于该统一资源定位符URL地址自动新增抓取任务,从而采集获取更多的网络数据,进一步提升模拟用户行为的能力。
如图2所示,本实施例第二方面提供了一种实现第一方面或可能设计一中所述网络数据采集方法的虚拟装置,包括有依次通信连接的任务获取模块、任务添加模块、任务执行模块、数据解析模块、数据处理模块和数据存放模块;
所述任务获取模块,用于访问用于存放抓取任务的第一数据库,获取至少一个待执行抓取任务,其中,所述抓取任务包含有待爬取统一资源定位符URL地址;
所述任务添加模块,用于将所述至少一个待执行抓取任务添加到当前任务队列中,得到新任务队列,其中,所述新任务队列包含有按照执行先后顺序依次排列的至少一个待执行抓取任务;
所述任务执行模块,用于应用模拟用户行为工具Selnium依次执行在所述新任务队列中的各个待执行抓取任务,以便通过所述模拟用户行为工具Selnium模拟用户使用浏览器和对应任务的所述待爬取统一资源定位符URL地址进行网页访问,并下载获取网页内容;
所述数据解析模块,用于解析所述网页内容,获取至少一个解析数据;
所述数据处理模块,用于根据所述至少一个解析数据,获取至少一个结构化数据;
所述数据存放模块,用于将所述至少一个结构化数据存放到第二数据库中。
本实施例第二方面提供的前述装置的工作过程、工作细节和技术效果,可以参见第一方面或可能设计一中所述的网络数据采集方法,于此不再赘述。
如图3所示,本实施例第三方面提供了一种执行第一方面或可能设计一中所述网络数据采集方法的计算机设备,包括有依次通信连接的存储器、处理器和收发器,其中,所述存储器用于存储计算机程序,所述收发器用于收发信息,执行如第一方面或可能设计一中所述的网络数据采集方法。具体举例的,所述存储器可以但不限于包括随机存取存储器(Random-Access Memory,RAM)、只读存储器(Read-Only Memory,ROM)、闪存(FlashMemory)、先进先出存储器(First Input First Output,FIFO)和/或先进后出存储器(First Input Last Output,FILO)等等;所述收发器可以但不限于为WiFi(无线保真)无线收发器、蓝牙无线收发器、GPRS(General Packet Radio Service,通用分组无线服务技术)无线收发器和/或ZigBee(紫蜂协议,基于IEEE802.15.4标准的低功耗局域网协议)无线收发器等;所述处理器可以不限于采用型号为STM32F105系列的微处理器。此外,所述计算机设备还可以但不限于包括有电源模块、显示屏和其它必要的部件。
本实施例第三方面提供的前述计算机设备的工作过程、工作细节和技术效果,可以参见第一方面或可能设计一中所述的网络数据采集方法,于此不再赘述。
本实施例第四方面提供了一种存储包含第一方面或可能设计一中所述网络数据采集方法的指令的存储介质,即所述存储介质上存储有指令,当所述指令在计算机上运行时,执行如第一方面或可能设计一中所述的网络数据采集方法。其中,所述存储介质是指存储数据的载体,可以但不限于包括软盘、光盘、硬盘、闪存、优盘和/或记忆棒(MemoryStick)等,所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。
本实施例第四方面提供的前述存储介质的工作过程、工作细节和技术效果,可以参见第一方面或可能设计一中所述的网络数据采集方法,于此不再赘述。
本实施例第五方面提供了一种包含指令的计算机程序产品,当所述指令在计算机上运行时,使所述计算机执行如第一方面或可能设计一中所述的网络数据采集方法。其中,所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。
以上所描述的实施例仅仅是示意性的,若涉及到作为分离部件说明的单元,其可以是或者也可以不是物理上分开的;若涉及到作为单元显示的部件,其可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。而这些修改或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围。
最后应说明的是,本发明不局限于上述可选的实施方式,任何人在本发明的启示下都可得出其他各种形式的产品。上述具体实施方式不应理解成对本发明的保护范围的限制,本发明的保护范围应当以权利要求书中界定的为准,并且说明书可以用于解释权利要求书。
Claims (10)
1.一种网络数据采集方法,其特征在于,包括:
访问用于存放抓取任务的第一数据库,获取至少一个待执行抓取任务,其中,所述抓取任务包含有待爬取统一资源定位符URL地址;
将所述至少一个待执行抓取任务添加到当前任务队列中,得到新任务队列,其中,所述新任务队列包含有按照执行先后顺序依次排列的至少一个待执行抓取任务;
应用模拟用户行为工具Selnium依次执行在所述新任务队列中的各个待执行抓取任务,以便通过所述模拟用户行为工具Selnium模拟用户使用浏览器和对应任务的所述待爬取统一资源定位符URL地址进行网页访问,并下载获取网页内容;
解析所述网页内容,获取至少一个解析数据;
根据所述至少一个解析数据,获取至少一个结构化数据;
将所述至少一个结构化数据存放到第二数据库中。
2.如权利要求1所述的网络数据采集方法,其特征在于,访问用于存放抓取任务的第一数据库,获取至少一个待执行抓取任务,包括:
周期性地访问所述第一数据库,查找到在所述第一数据库中存放的多个抓取任务,其中,所述抓取任务还包含有抓取开关状态、最近执行时间和预设执行周期;
针对所述多个抓取任务中的各个抓取任务,若对应任务的所述抓取开关状态为打开状态且当前访问时间至对应任务的所述最近执行时间的时间差大于或等于对应任务的所述预设执行周期,则将该抓取任务作为所述待执行抓取任务。
3.如权利要求1所述的网络数据采集方法,其特征在于,将所述至少一个待执行抓取任务添加到当前任务队列中,得到新任务队列,包括:
针对所述至少一个待执行抓取任务中的各个待执行抓取任务,根据对应任务中的预设优先级和/或对应任务的队列添加时间,计算得到对应的任务优先指标值,其中,所述任务优先指标值用于表征抓取任务的执行先后顺序;
针对所述至少一个待执行抓取任务中的各个待执行抓取任务,根据对应任务的所述任务优先指标值,将该待执行抓取任务排列到所述当前任务队列中,得到所述新任务队列。
4.如权利要求1所述的网络数据采集方法,其特征在于,应用模拟用户行为工具Selnium依次执行在所述新任务队列中的各个待执行抓取任务,包括:
将所述新任务队列中的各个待执行抓取任务依次地且一一对应地分配给多任务执行单元中的各个任务执行单元,以便由所述任务执行单元应用所述模拟用户行为工具Selnium的分布式测试用例执行分配到的待执行抓取任务,其中,所述多任务执行单元包括有启动多进程的本地服务器和/或至少一个从属服务器,所述本地服务器通过分布式网络通信连接所述至少一个从属服务器。
5.如权利要求1所述的网络数据采集方法,其特征在于,下载获取网页内容,包括有如下步骤S301~S303:
S301.在打开网页内容后,通过所述模拟用户行为工具Selnium模拟用户的目标识别行为,以便判断所述页面内容是否为抓取目标;
S302.若是,则下载获取所述网页内容,否则执行步骤S303;
S303.通过所述模拟用户行为工具Selnium模拟用户的点击操作行为/和用户登录行为,以便打开下一个网页内容,然后返回执行步骤S301。
6.如权利要求1所述的网络数据采集方法,其特征在于,根据所述至少一个解析数据,获取至少一个结构化数据,包括:
根据预设提取规则,从所述至少一个解析数据中提取出符合所述预设提取规则的至少一个目标数据;
针对所述至少一个目标数据中的各个目标数据,判断对应的数据形式是否为网页链接地址形式,若否,则进一步判断对应的数据字段信息是否有缺失;
针对所述至少一个目标数据中的各个目标数据,若判定对应的数据字段信息有缺失,则删除该目标数据,否则对该目标数据进行数据清洗处理和结构化处理,得到所述结构化数据。
7.如权利要求1所述的网络数据采集方法,其特征在于,在针对所述至少一个目标数据中的各个目标数据,判断对应的数据形式是否为网页链接地址形式之后,所述方法还包括:
若是,则生成一个新抓取任务,并将所述新抓取任务作为待执行抓取任务添加到当前任务队列中,其中,所述新抓取任务包含有该目标数据中的统一资源定位符URL地址。
8.一种网络数据采集装置,其特征在于,包括有依次通信连接的任务获取模块、任务添加模块、任务执行模块、数据解析模块、数据处理模块和数据存放模块;
所述任务获取模块,用于访问用于存放抓取任务的第一数据库,获取至少一个待执行抓取任务,其中,所述抓取任务包含有待爬取统一资源定位符URL地址;
所述任务添加模块,用于将所述至少一个待执行抓取任务添加到当前任务队列中,得到新任务队列,其中,所述新任务队列包含有按照执行先后顺序依次排列的至少一个待执行抓取任务;
所述任务执行模块,用于应用模拟用户行为工具Selnium依次执行在所述新任务队列中的各个待执行抓取任务,以便通过所述模拟用户行为工具Selnium模拟用户使用浏览器和对应任务的所述待爬取统一资源定位符URL地址进行网页访问,并下载获取网页内容;
所述数据解析模块,用于解析所述网页内容,获取至少一个解析数据;
所述数据处理模块,用于根据所述至少一个解析数据,获取至少一个结构化数据;
所述数据存放模块,用于将所述至少一个结构化数据存放到第二数据库中。
9.一种计算机设备,其特征在于,包括有依次通信连接的存储器、处理器和收发器,其中,所述存储器用于存储计算机程序,所述收发器用于收发信息,所述处理器用于读取所述计算机程序,执行如权利要求1~7中任意一项所述的网络数据采集方法。
10.一种存储介质,其特征在于,所述存储介质上存储有指令,当所述指令在计算机上运行时,执行如权利要求1~7中任意一项所述的网络数据采集方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110169027.3A CN112818201A (zh) | 2021-02-07 | 2021-02-07 | 一种网络数据采集方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110169027.3A CN112818201A (zh) | 2021-02-07 | 2021-02-07 | 一种网络数据采集方法、装置、计算机设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112818201A true CN112818201A (zh) | 2021-05-18 |
Family
ID=75862250
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110169027.3A Pending CN112818201A (zh) | 2021-02-07 | 2021-02-07 | 一种网络数据采集方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112818201A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114095207A (zh) * | 2021-10-26 | 2022-02-25 | 北京连星科技有限公司 | 一种基于分布式调度IPv6网站检测方法 |
CN115730150A (zh) * | 2022-12-09 | 2023-03-03 | 广州富莱星科技有限公司 | 一种数据抓取方法、系统、设备及可存储介质 |
CN116719986A (zh) * | 2023-08-10 | 2023-09-08 | 深圳传趣网络技术有限公司 | 基于Python的数据抓取方法、装置、设备及存储介质 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105045838A (zh) * | 2015-07-01 | 2015-11-11 | 华东师范大学 | 基于分布式存储系统的网络爬虫系统 |
CN105243159A (zh) * | 2015-10-28 | 2016-01-13 | 福建亿榕信息技术有限公司 | 一种基于可视化脚本编辑器的分布式网络爬虫系统 |
CN105337765A (zh) * | 2015-10-10 | 2016-02-17 | 上海新炬网络信息技术有限公司 | 一种分布式hadoop集群故障自动诊断修复系统 |
CN105468664A (zh) * | 2015-05-12 | 2016-04-06 | 北京众标网络科技有限公司 | 一种信息采集方法及装置 |
CN105956175A (zh) * | 2016-05-24 | 2016-09-21 | 考拉征信服务有限公司 | 网页内容爬取的方法和装置 |
CN107317724A (zh) * | 2017-06-06 | 2017-11-03 | 中证信用增进股份有限公司 | 基于云计算技术的数据采集系统及方法 |
CN108769115A (zh) * | 2018-04-19 | 2018-11-06 | 中国科学院计算技术研究所 | 分布式rss数据采集方法和系统 |
CN109284430A (zh) * | 2018-09-07 | 2019-01-29 | 杭州艾塔科技有限公司 | 基于分布式架构的可视化主题网页内容爬取系统及方法 |
CN109614539A (zh) * | 2019-01-16 | 2019-04-12 | 重庆金融资产交易所有限责任公司 | 数据抓取方法、装置及计算机可读存储介质 |
CN109814992A (zh) * | 2018-12-29 | 2019-05-28 | 中国科学院计算技术研究所 | 用于大规模网络数据采集的分布式动态调度方法和系统 |
CN109840298A (zh) * | 2018-12-29 | 2019-06-04 | 中国科学院计算技术研究所 | 大规模网络数据的多信息来源采集方法和系统 |
-
2021
- 2021-02-07 CN CN202110169027.3A patent/CN112818201A/zh active Pending
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105468664A (zh) * | 2015-05-12 | 2016-04-06 | 北京众标网络科技有限公司 | 一种信息采集方法及装置 |
CN105045838A (zh) * | 2015-07-01 | 2015-11-11 | 华东师范大学 | 基于分布式存储系统的网络爬虫系统 |
CN105337765A (zh) * | 2015-10-10 | 2016-02-17 | 上海新炬网络信息技术有限公司 | 一种分布式hadoop集群故障自动诊断修复系统 |
CN105243159A (zh) * | 2015-10-28 | 2016-01-13 | 福建亿榕信息技术有限公司 | 一种基于可视化脚本编辑器的分布式网络爬虫系统 |
CN105956175A (zh) * | 2016-05-24 | 2016-09-21 | 考拉征信服务有限公司 | 网页内容爬取的方法和装置 |
CN107317724A (zh) * | 2017-06-06 | 2017-11-03 | 中证信用增进股份有限公司 | 基于云计算技术的数据采集系统及方法 |
CN108769115A (zh) * | 2018-04-19 | 2018-11-06 | 中国科学院计算技术研究所 | 分布式rss数据采集方法和系统 |
CN109284430A (zh) * | 2018-09-07 | 2019-01-29 | 杭州艾塔科技有限公司 | 基于分布式架构的可视化主题网页内容爬取系统及方法 |
CN109814992A (zh) * | 2018-12-29 | 2019-05-28 | 中国科学院计算技术研究所 | 用于大规模网络数据采集的分布式动态调度方法和系统 |
CN109840298A (zh) * | 2018-12-29 | 2019-06-04 | 中国科学院计算技术研究所 | 大规模网络数据的多信息来源采集方法和系统 |
CN109614539A (zh) * | 2019-01-16 | 2019-04-12 | 重庆金融资产交易所有限责任公司 | 数据抓取方法、装置及计算机可读存储介质 |
Non-Patent Citations (1)
Title |
---|
热血沸腾: ""尝试Selenium分布式爬虫"", 《HTTPS://WWW.JIANSHU.COM/P/11BE070E5637?IVK_SA=1025883I》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114095207A (zh) * | 2021-10-26 | 2022-02-25 | 北京连星科技有限公司 | 一种基于分布式调度IPv6网站检测方法 |
CN115730150A (zh) * | 2022-12-09 | 2023-03-03 | 广州富莱星科技有限公司 | 一种数据抓取方法、系统、设备及可存储介质 |
CN116719986A (zh) * | 2023-08-10 | 2023-09-08 | 深圳传趣网络技术有限公司 | 基于Python的数据抓取方法、装置、设备及存储介质 |
CN116719986B (zh) * | 2023-08-10 | 2023-12-26 | 深圳传趣网络技术有限公司 | 基于Python的数据抓取方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112818201A (zh) | 一种网络数据采集方法、装置、计算机设备及存储介质 | |
CN110908879B (zh) | 埋点数据的上报方法、装置、终端和存储介质 | |
CN102855318B (zh) | 网页预加载方法与系统 | |
US10567407B2 (en) | Method and system for detecting malicious web addresses | |
CN109033115B (zh) | 一种动态网页爬虫系统 | |
CN101192227B (zh) | 一种基于分布式计算网络的日志文件分析方法和系统 | |
CN102054028B (zh) | 一种网络爬虫系统实现页面渲染功能的方法 | |
CN105243159A (zh) | 一种基于可视化脚本编辑器的分布式网络爬虫系统 | |
CN107370806B (zh) | Http状态码监控方法、装置、存储介质和电子设备 | |
CN106941493B (zh) | 一种网络安全态势感知结果输出方法及装置 | |
CN110177139B (zh) | 一种可公开的移动app数据抓取方法 | |
US20120030338A1 (en) | Web page load time prediction and simulation | |
CN103810176B (zh) | 一种网页信息的预取访问方法和装置 | |
CN102446222A (zh) | 一种网页内容预加载方法、装置及系统 | |
CN102361484A (zh) | 被动网络性能测量系统及其页面识别方法 | |
CN103455600A (zh) | 一种视频url抓取方法、装置及服务器设备 | |
CN103593613A (zh) | 用于计算机病毒检测的方法、终端、服务器和系统 | |
CN105786839A (zh) | 一种应用数据获取方法及装置 | |
CN114064144B (zh) | 一种跨应用数据获取的通信插件以及通信方法 | |
CN111294849B (zh) | 一种lte用户上网质差的判定方法及装置 | |
CN102893261B (zh) | 空闲转换采样方法及其系统 | |
CN111355628A (zh) | 一种模型训练方法、业务识别方法、装置和电子装置 | |
CN105893584A (zh) | 一种显示收藏夹网址标签的方法、客户端和系统 | |
CN112685270A (zh) | 一种系统监控日志的采集方法、装置、电子设备及介质 | |
CN103354546A (zh) | 报文过滤方法与装置 |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210518 |