CN107895009B - 一种基于分布式的互联网数据采集方法及*** - Google Patents
一种基于分布式的互联网数据采集方法及*** Download PDFInfo
- Publication number
- CN107895009B CN107895009B CN201711105738.4A CN201711105738A CN107895009B CN 107895009 B CN107895009 B CN 107895009B CN 201711105738 A CN201711105738 A CN 201711105738A CN 107895009 B CN107895009 B CN 107895009B
- Authority
- CN
- China
- Prior art keywords
- data
- plug
- url
- data acquisition
- acquisition task
- 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
- 238000000034 method Methods 0.000 title claims abstract description 30
- 238000012545 processing Methods 0.000 claims abstract description 52
- 230000006870 function Effects 0.000 claims abstract description 13
- 238000004458 analytical method Methods 0.000 claims description 30
- 230000014509 gene expression Effects 0.000 claims description 24
- 238000007405 data analysis Methods 0.000 claims description 19
- 238000013480 data collection Methods 0.000 claims description 14
- 239000000284 extract Substances 0.000 claims description 14
- 238000000605 extraction Methods 0.000 claims description 13
- 238000012790 confirmation Methods 0.000 claims description 5
- 239000000126 substance Substances 0.000 claims 2
- 238000010200 validation analysis Methods 0.000 claims 2
- 230000009193 crawling Effects 0.000 abstract description 7
- 238000013075 data extraction Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000012544 monitoring process Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000008707 rearrangement Effects 0.000 description 2
- 241000239290 Araneae Species 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 235000014510 cooky Nutrition 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000012795 verification 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/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
-
- 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
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推送到待爬取队列。实现多类型、复杂网站的大量数据爬取。
Description
技术领域
本发明涉及基于互联网数据采集技术领域,特别涉及一种基于分布式的互联网数据采集方法及***。
背景技术
随着网络的迅速发展,互联网成为大量信息的载体,其中包含舆情信息、社会事件、政策反响、各种行业信息、就业信息等是大数据舆情分析***、宏观经济分析***的数据基础。如何有效地提取并利用这些信息成为一个巨大的挑战。网络爬虫是数据分析***中十分重要的组成部分,它负责从互联网中搜集网页,采集信息,这些网页信息用于建立索引从而为搜索分析提供支持,它决定着整个数据分析***的内容是否丰富,信息是否及时,因此其性能的优劣直接影响着数据分析的效果。
如图1所示,一般爬虫运行流程大概如下:
(1)调度器(Scheduler)从待下载链接(URL)队列中取出一个链接(URL)
(2)调度器启动采集模块Spiders模块
(3)采集模块把URL传给下载器(Downloader),下载器把资源下载下来
(4)提取目标数据,抽取出目标对象(Item),则交给实体管道(item pipeline)进行进一步的处理;比如存入数据库、文件等
若是解析出的是链接(URL),则把链接(URL)***到待爬取队列当中。
目前,互联网数据采集方法之一是基于流程配置采集方法,此方法采用模拟人工点击浏览器的过程进行数据采集规则定义,比如:先点击板块及分页获取采集的数据列表,再进入到具体信息页面,最后根据需要提取所需字段。
该方法使用浏览器内核,模拟浏览器下载网页,执行JS代码。虽然能够采集到所有能看到的数据,而没有在网页上显示出来的信息确无法采集,最大的问题在于要通过浏览器解析JS代码、渲染数据后才能采集到数据,速度比较慢(3~10秒),而且需要的带宽也非常多。在需要采集的数据量较多时往往无法满足需求。
互联网数据采集的另一个方法是一个管理配置采集规则页面,由用户输入采集规则(板块列表、数据提取信息、任务执行信息等),采集任务发布数本地或服务器,服务器根据采集规则配置进行数据采集,数据采集完成后用户可下载数据文件或由服务器将数据推送给用户。
上述通过配置采集规则的方法可以采集大部分简单的网站数据,对于较复杂的网站,如需要登录、POST请求、特殊Header信息、部分信息需要二次AJAX请求的数据等处理起来比较繁琐。无法解决需要频繁切换动态IP代理的情形。无法处理需要进行特殊处理才能识别的数据,如从图片解析数据,从音频解析数据等。
发明内容
鉴于上述方法的不足,本发明提出一种基于模板、插件、分布式的互联网数据采集方法,该方法根据每个网站的具体情况,灵活配置合适的采集模板及采集插件,从而可以使用统一的方法采集互联网中各式各样的网站数据。
本发明提供一种基于模板、插件、分布式的互联网数据采集方法及***,***中主要包括采集模板定制、采集插件定制、分布式数据采集。采集模板定制用于任务信息、规则信息;采集插件定制提供个性化网站的采集定制插件,如数据下载插件、代理IP选择插件、文件解析插件、图片数据解析插件、音频解析插件等;分布式数据采集协调一个采集集群中的爬虫资源,根据采集任务需要启动一定数量的爬虫进行数据爬取。
本发明是一种一种基于分布式的互联网数据采集方法,接收用户创建数据采集任务的请求并创建数据采集任务,将用户创建的数据采集任务分配给多个爬虫线程,并启动所述多个爬虫线程;
在所述每个爬虫线程接收到数据采集任务并且被启动后,从待抓取URL队列中获取URL,并从数据采集任务指定的网站下载网页,执行数据采集任务指定的数据处理插件,进行数据的提取;所述数据采集任务指定的数据处理插件是根据指定的网站类型选择的具有不同功能的数据处理插件;
将提取出来的目标数据存入指定数据库用于后续处理,将提取出来的待爬取URL推送到待爬取队列。
优选的,将提取出来的待爬取URL推送到待爬取队列前对URL进行排重确认,判断该URL是否已经被采集过数据,如果判断结果为是,则将该URL丢弃;如果判断结果为否,则将该URL推送至待爬取队列。
优选的,数据处理插件包括登录插件、数据解析插件、元数据插件、分页解析插件、URL解析插件;
所述登录插件用于需要登陆才能进行数据提取的网站;
所述数据解析插件用于根据每个数据字段指定的提取表达式进行数据提取;
所述元数据插件用于需要分别从列表页和详细页中进行数据提取的网站;
所述分页解析插件用于获取网页的分页信息的网站;
所述URL解析插件用于提取URL。
优选的,数据处理插件还包括图片识别插件、声音识别插件、二维码识别插件。
优选的,所述登录插件需要配置的信息包括用户列表、网站登陆页面中用于植入登陆用户名、密码对应的html元素的ID、验证码的html元素的ID,所述用户列表包含登陆用户名、密码。
本发明是一种基于分布式的互联网数据采集***,包括:
控制中心,接收用户创建数据采集任务的请求并创建数据采集任务,将用户创建的数据采集任务分配给多个爬虫线程,并启动所述多个爬虫线程;
采集中心,在所述每个爬虫线程接收到数据采集任务并且被启动后,从待抓取URL队列中获取URL,并从数据采集任务指定的网站下载网页,执行数据采集任务指定的数据处理插件,进行数据的提取,将提取到的数据进行数据解析;所述数据采集任务指定的数据处理插件是根据指定的网站类型选择的具有不同功能的数据处理插件;
数据中心,用于将提取出来的目标数据存入指定数据库用于后续处理;
URL推送中心,用于将提取出来的待爬取URL推送到待爬取队列。
优选的,还包括排重中心,用于将提取出来的待爬取URL推送到待爬取队列前对URL进行排重确认,判断该URL是否已经被采集过数据,如果判断结果为是,则将该URL丢弃;如果判断结果为否,则将该URL推送至待爬取队列。
优选的,数据处理插件包括登录插件、数据解析插件、元数据插件、分页解析插件、URL解析插件;
所述登录插件用于需要登陆才能进行数据提取的网站;
所述数据解析插件用于根据每个数据字段指定的提取表达式进行数据提取;
所述元数据插件用于需要分别从列表页和详细页中进行数据提取的网站;
所述分页解析插件用于需要获取网页的分页信息的网站;
所述URL解析插件用于提取URL。
优选的,数据处理插件还包括图片识别插件、声音识别插件、二维码识别插件。
优选的,所述登录插件需要配置的信息包括用户列表、网站登陆页面中用于植入登陆用户名、密码对应的html元素的ID、验证码的html元素的ID,所述用户列表包含登陆用户名、密码。
本发明的有益技术效果在于:(1)基于分布式的互联网数据采集方法,实现复杂网站的大量数据爬取。(2)基于数据处理插件机制,针对不同类型网站的需要,选择使用插件列表中具有相应功能的插件,实现多类型、复杂网站的大量数据爬取。(3)本发明通过设置排重中心,将分布式爬虫产生的URL进行排重,避免重复爬取。(4)本发明提出了一种基于消息队列的方法,协调分布式爬虫产生的待爬取URL队列。
附图说明
图1:现有技术爬虫运行流程示意图;
图2:本发明实施例1基于分布式的互联网数据采集方法示意图;
图3:本发明实施例2基于分布式的互联网数据采集***示意图;
图4:实施例3中采集任务管理示意图;
图5:实施例3的采集任务配置页面;
图6:实施例3的URL规则配置页面;
图7:实施例3指定采集该网站的采集列表;
图8:实施例3指定提取URL链接的范围页面;
图9:实施例3指定元数据提起表达式页面;
图10:实施例3指定详细数据提取字段的表达式页面;
图11:实施例3指定采集该网站的采集服务器;
图12:实施例3源文件管理页面;
图13:实施例3控制中心控制采集中心的启动、停止、查看数据、查看种子、监控任务的运行状态;
图14:实施例3该任务采集到的具体数据;
图15:实施例3该任务要采集的板块信息。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
实施例1
如图2所示,本发明是一种基于分布式的互联网数据采集方法,包括以下步骤:
S101:接收用户创建数据采集任务的请求并创建数据采集任务,将用户创建的数据采集任务分配给多个爬虫线程,并启动所述多个爬虫线程。
首先,接收用户创建数据采集任务的请求,进行数据采集任务的管理,包括新建、编辑、删除采集任务,指定采集任务的名称、URL排重规则、两次爬取URL时的间隔时间、工作线程数、重试次数等。采集任务以树形结构分类进行管理。
根据用户的指示定义采集任务,指定采集的板块列表、IP代理使用策略、网页数据下载模式(支持基于浏览器内核下载及基于HttpClient下载)、指定数据处理插件、URL提取范围、URL列表正在表达式、URL内容正则表达式、元数据信息、详细数据项提取XPATH/CSS/REGEX表达式等。
任务创建完毕后,将数据采集任务分配采集爬虫,启动采集爬虫开始数据采集。当数据采集任务结束后,停止数据采集。同时对采集爬虫的运行状态、采集服务器的CPU、网络、内存、磁盘的状态、采集数据情况进行监控;对采集规则是否能采集到数据、采集爬虫是否运行正常提供预警、告警。
S102:在所述每个爬虫线程接收到数据采集任务并且被启动后,从待抓取URL队列中获取URL,并从数据采集任务指定的网站下载网页,执行数据采集任务指定的数据处理插件,进行数据的提取;所述数据采集任务指定的数据处理插件是根据指定的网站类型选择的具有不同功能的数据处理插件。
采集任务创建完毕后,控制中心并将采集任务发布到采集中心,采集中心根据控制中心发出的采集任务进行数据的提取。采集爬虫进行数据采集是分布式互联网数据采集方法中进行数据下载、数据提取的重要部分。在进行分布式互联网数据采集时,同时由几十至几百个爬虫线程组成一个集群,一个采集任务由一个或多个爬虫线程进行协同处理。采集任务启动时,参与这个采集任务的爬虫线程将同时收到启动指令,爬虫主动从待抓取队列中获取待爬取的URL,开始从指定的网站下载网页,执行数据采集任务指定的所有数据处理插件,如登录插件、数据解析插件、元数据解析插件、分页解析插件、URL解析插件,特殊的插件还有图片识别插件、声音识别插件、二维码识别插件等。本发明设置有插件列表,包括有登录插件、数据解析插件、元数据解析插件、分页解析插件、URL解析插件,特殊的插件还有图片识别插件、声音识别插件、二维码识别插件等数据处理插件。在采集爬虫进行数据采集过程中针对不同类型的网站的需要,选择使用插件列表中具有相应功能的插件,实现多类型、复杂网站的大量数据爬取。
所述登录插件用于需要登陆才能进行数据提取的网站;针对部分网站需要登陆才能采集导数据,***提供统一配置登陆的插件,该插件需要配置的信息包括用户列表(包含登陆用户名、密码)、网站登陆页面中用于植入登陆用户名、密码对应的html元素的ID、验证码的html元素的ID。***随即从用户列表中选取一个登陆用户名、密码尝试登陆网站,如出现验证码,***将验证码图片发送到解码服务器并获取验证码,植入登陆页面进行模拟登陆,登陆成功后保存cookie信息,以便持续数据采集。采集***中每个线程使用一个用户信息进行登陆,因此支持同时多个账号登陆采集。登陆插件支持按持续时间切换账号,比如半小时换一个账号登陆,也支持按采集一定网页数量后切换账号。
所述数据解析插件用于根据每个数据字段指定的提取表达式进行数据提取;本插件的组要功能是数据提取,每个数据字段指定提取表达式,支持的表达式有:xpath表达式、css表达式、正则表达式,***根据此表达式从网页的html源码提取数据。
所述元数据插件用于需要分别从列表页和详细页中进行数据提取的网站;此插件主要是针对数据分阶段提取的情况,在列表页中提取部分信息(称之为元数据),将元数据跟数据详细页面的url连接一起保存到待爬取队列,之后在进行详细页面数据采集时就可以从元数据中取得这部分数据,而不是从详细页面中提取。典型的例子是采集电商数据时,在商品详情页面中很难获取商品的价格、销量等信息,但是在商品列表却很容易获取商品价格、销量,因此在采集到商品列表时就先采集到商品价格、销量(元数据),最后在采集商品的详细页面时即可从元数据获得商品价格、销量。
所述分页解析插件用于需要获取网页的分页信息的网站;在web2.0时代,网页中的分析信息,比如下一页、最后一页、第几页等分页信息在网页源码中并不能直接得到,而是通过AJAX方式从网站的服务器获取到,并使用javascript生成这些分页信息。***提供定制化接口供数据采集人员根据网站的分页javascript逻辑生成分页url连接。所述URL解析插件用于提取URL。
S103:将提取出来的目标数据存入指定数据库用于后续处理,将提取出来的待爬取URL推送到待爬取队列。
提取出来的数据经过排重、去噪、打标后存入指定数据库,用于后续处理。数据库采用Hadoop分布式集群存储基础数据、对于常用的数据存储到ES索引库以便快速检索。
提取出来的待爬取URL推送到待爬取队列,爬虫处理完数据后从待爬取队列中获取待爬取的URL继续采集。待爬取队列为分布式采集提供支持,每个采集爬虫都从待爬取队列中获取将要爬取的URL地址,爬虫解析出的URL列表统一发送到待爬取队列统一调度。采集爬虫的数据采集日志、采集爬虫的健康状态实时上报到控制中心。
S104:将提取出来的待爬取URL推送到待爬取队列前对URL进行排重确认,判断该URL是否已经被采集过数据,如果判断结果为是,则将该URL丢弃;如果判断结果为否,则将该URL推送至待爬取队列。
网站的URL链接存在于多个页面中,***使用URL地址+key(可根据业务需求定义)生成MD5的UUID进行排重,保证每个URL地址只采集一次数据。对URL进行排重确认有两种模式。模式一是通过MongoDB数据库排重,每个UUID进行写入数据库操作,写入失败则代表该记录已存在,否则该记录不存在。此模式的优点是支持爬虫数量无限制,缺点是要消耗磁盘的IO。模式二是使用BloomFilter排重,Bloom Filter是一种空间效率很高的随机数据结构,它利用位数组很简洁地表示一个集合,并能判断一个元素是否属于这个集合。BloomFilter的这种高效是有一定代价的:在判断一个元素是否属于某个集合时,有可能会把不属于这个集合的元素误认为属于这个集合(false positive)。因此,Bloom Filter不适合那些“零错误”的应用场合。而在能容忍低错误率的应用场合下,Bloom Filter通过极少的错误换取了存储空间的极大节省。
实施例2:
本发明是一种基于分布式的互联网数据采集***,包括:
控制中心,接收用户创建数据采集任务的请求并创建数据采集任务,将用户创建的数据采集任务分配给多个爬虫线程,并启动所述多个爬虫线程;
采集中心,在所述每个爬虫线程接收到数据采集任务并且被启动后,从待抓取URL队列中获取URL,并从数据采集任务指定的网站下载网页,执行数据采集任务指定的数据处理插件,进行数据的提取,将提取到的数据进行数据解析;所述数据采集任务指定的数据处理插件是根据指定的网站类型选择的具有不同功能的数据处理插件。
数据中心,用于将提取出来的目标数据存入指定数据库用于后续处理;数据库采用Hadoop分布式集群存储基础数据、对于常用的数据存储到ES索引库以便快速检索。采集***进行采集数据,将数据发送到指定数据库(kafka消息队列),数据中心有专门的入库程序负责入库、存储、查询操作。
URL推送中心,用于将提取出来的待爬取URL推送到待爬取队列。
排重中心,用于将提取出来的待爬取URL推送到待爬取队列前对URL进行排重确认,判断该URL是否已经被采集过数据,如果判断结果为是,则将该URL丢弃;如果判断结果为否,则将该URL推送至待爬取队列。本发明的排重中心能够实现自我管理功能,每个采集任务对应一个排重队列,新建采集任务时排重队列自动创建,删除采集任务时,排重队列自动删除。
所述数据处理插件包括登录插件、数据解析插件、元数据插件、分页解析插件、URL解析插件,图片识别插件、声音识别插件、二维码识别插件。
所述登录插件用于需要登陆才能进行数据提取的网站,所述登录插件需要配置的信息包括用户列表、网站登陆页面中用于植入登陆用户名、密码对应的html元素的ID、验证码的html元素的ID,所述用户列表包含登陆用户名、密码。所述数据解析插件用于根据每个数据字段指定的提取表达式进行数据提取。所述元数据插件用于需要分别从列表页和详细页中进行数据提取的网站。所述分页解析插件用于需要获取网页的分页信息的网站;所述URL解析插件用于提取URL。
实施例3:
本实施例以采集“山东省政府网站”的招投标数据为例。当控制中心接收用户指示后,开始创建数据采集任务。由于计算机***上会运行成百上千的采集任务,为方便管理,采集任务以树形结构进行分类管理。如图4所示,左侧为采集任务树形分类,右侧是该分类下的采集任务列表,采集任务的具体配置信息可以从页面进行配置,也可以从xml配置文件直接导入。图4所示的任务名称列表中有“山东省政府采购网”,指定采集任务的名称,即本次采集任务所指定的网站为“山东政府采购网”。
图5为数据采集任务运行规则配置页面,在此页面对数据采集任务进行配置,主要配置任务ID、任务名称、线程数、请求超时时间、重试次数、代理池、数据类型等。其中数据类型是指采集的数据分类,包含:新闻、论坛、房产、电商、就业等。
图5是URL规则配置页面,根据图6所示,在任务中指定内容页的URL正则表达式、列表页的URL正则表达式以及URL的黑名单正则表达式,这些URL规则都可以使用实现指定接口的java类,由java类生成具体的正则表达式。
解析器列表列出指定的数据处理插件。在分布式的互联网数据采集***中,包括登录插件、数据解析插件、元数据插件、分页解析插件、URL解析插件、图片识别插件、声音识别插件、二维码识别插件等多个具有不同功能的数据处理插件,用于根据所要进行数据采集的网站的类型使用不同功能的插件。在进行数据提取时,采集中心根据控制中心发出的采集任务,执行指定的数据处理插件,进行数据的提取。
在本实施例中,根据山东政府采购网及所要采集数据的特征,指定本次采集任务所需要的数据处理插件包括:LoginParser:登陆插件;DataParser:数据解析插件;MetaParser:元数据解析插件;LinkParser:URL解析插件。当爬虫在进行数据提取时,执行上述指定的数据处理插件进行数据的提取。
控制中心在创建采集任务时,还将对URL种子、URL提取范围、元数据提取范围、详细数据提取、服务器、源文件等进行指定。如图7所示,指定采集该网站的采集列表。如图8所示,指定提取URL链接的范围。如图9所示,指定元数据提起表达式,本实施例中元数据提取了标题、发布时间、详细页url。如图10所示,指定详细数据提取字段的表达式,本实施例中指定了内容、文本分类、子分类、省、图片地址的提取表达式。如图11所示,指定采集该网站的采集服务器,可以是一个,也可以是多个。每个爬虫服务器包含多个爬虫线程,实现分布式的数据提取。如图12所示,源文件可以上传xml采集任务配置文件,***将从xml文件中解析配置信息,而不用在页面中配置,对于熟练的数据采集人员来说更方便快捷。
采集任务创建完毕后,控制中心将采集任务发布到采集中心,采集中心根据控制中心发出的采集任务进行数据的提取。如图13所示,控制中心控制采集中心的启动、停止、查看数据、查看种子、监控任务的运行状态。采集中心被启动后,***将通过socket方式通知选定的采集服务器参与该任务的数据采集。停止后,***将通过socket方式通知选定的采集服务器停止该任务的数据采集。如图14所示,控制中心可以查看该任务采集到的具体数据。如图15所示,查看该任务要采集的板块信息,即URL链接。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变型,这些改进和变型也应视为本发明的保护范围。
Claims (8)
1.一种基于分布式的互联网数据采集方法,其特征在于:
接收用户创建数据采集任务的请求并创建数据采集任务,将用户创建的数据采集任务分配给多个爬虫线程,并启动所述多个爬虫线程;
在所述每个爬虫线程接收到数据采集任务并且被启动后,从待抓取URL队列中获取URL,并从数据采集任务指定的网站下载网页,执行数据采集任务指定的数据处理插件,进行数据的提取;所述数据采集任务指定的数据处理插件是根据指定的网站类型选择的具有不同功能的数据处理插件;
将提取出来的目标数据存入指定数据库用于后续处理,将提取出来的待爬取URL推送到待爬取队列;
将提取出来的待爬取URL推送到待爬取队列前对URL进行排重确认,判断该URL是否已经被采集过数据,如果判断结果为是,则将该URL丢弃;如果判断结果为否,则将该URL推送至待爬取队列;其中,
使用URL地址和key生成MD5的UUID来进行排重,以保证每个URL地址只采集一次数据,并且,对URL进行排重确认包括两种模式:
模式一为通过数据库排重,将每个UUID进行写入数据库操作,写入失败则代表该记录已存在,否则该记录不存在;
模式二为通过随机数据结构排重,该结构利用位数组表示集合,并判断元素是否属于该集合。
2.根据权利要求1所述的一种基于分布式的互联网数据采集方法,其特征在于:数据处理插件包括登录插件、数据解析插件、元数据插件、分页解析插件、URL解析插件;
所述登录插件用于需要登陆才能进行数据提取的网站;
所述数据解析插件用于根据每个数据字段指定的提取表达式进行数据提取;
所述元数据插件用于需要分别从列表页和详细页中进行数据提取的网站;
所述分页解析插件用于获取网页的分页信息的网站;
所述URL解析插件用于提取URL。
3.根据权利要求1所述的一种基于分布式的互联网数据采集方法,其特征在于:数据处理插件还包括图片识别插件、声音识别插件、二维码识别插件。
4.根据权利要求2所述的一种基于分布式的互联网数据采集方法,其特征在于:所述登录插件需要配置的信息包括用户列表、网站登陆页面中用于植入登陆用户名、密码对应的html元素的ID、验证码的html元素的ID,所述用户列表包含登陆用户名、密码。
5.一种基于分布式的互联网数据采集***,其特征在于:包括:
控制中心,接收用户创建数据采集任务的请求并创建数据采集任务,将用户创建的数据采集任务分配给多个爬虫线程,并启动所述多个爬虫线程;
采集中心,用于在所述每个爬虫线程接收到数据采集任务并且被启动后,从待抓取URL队列中获取URL,并从数据采集任务指定的网站下载网页,执行数据采集任务指定的数据处理插件,进行数据的提取,将提取到的数据进行数据解析;所述数据采集任务指定的数据处理插件是根据指定的网站类型选择的具有不同功能的数据处理插件;
数据中心,用于将提取出来的目标数据存入指定数据库用于后续处理;
URL推送中心,用于将提取出来的待爬取URL推送到待爬取队列;
排重中心,用于将提取出来的待爬取URL推送到待爬取队列前对URL进行排重确认,判断该URL是否已经被采集过数据,如果判断结果为是,则将该URL丢弃;如果判断结果为否,则将该URL推送至待爬取队列;其中,
使用URL地址和key生成MD5的UUID来进行排重,以保证每个URL地址只采集一次数据,并且,对URL进行排重确认包括两种模式:
模式一为通过数据库排重,将每个UUID进行写入数据库操作,写入失败则代表该记录已存在,否则该记录不存在;
模式二为通过随机数据结构排重,该结构利用位数组表示集合,并判断元素是否属于该集合。
6.根据权利要求5所述的一种基于分布式的互联网数据采集***,其特征在于:数据处理插件包括登录插件、数据解析插件、元数据插件、分页解析插件、URL解析插件;
所述登录插件用于需要登陆才能进行数据提取的网站;
所述数据解析插件用于根据每个数据字段指定的提取表达式进行数据提取;
所述元数据插件用于需要分别从列表页和详细页中进行数据提取的网站;
所述分页解析插件用于需要获取网页的分页信息的网站;
所述URL解析插件用于提取URL。
7.根据权利要求5所述的一种基于分布式的互联网数据采集***,其特征在于:数据处理插件还包括图片识别插件、声音识别插件、二维码识别插件。
8.根据权利要求6所述的一种基于分布式的互联网数据采集***,其特征在于:所述登录插件需要配置的信息包括用户列表、网站登陆页面中用于植入登陆用户名、密码对应的html元素的ID、验证码的html元素的ID,所述用户列表包含登陆用户名、密码。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711105738.4A CN107895009B (zh) | 2017-11-10 | 2017-11-10 | 一种基于分布式的互联网数据采集方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711105738.4A CN107895009B (zh) | 2017-11-10 | 2017-11-10 | 一种基于分布式的互联网数据采集方法及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107895009A CN107895009A (zh) | 2018-04-10 |
CN107895009B true CN107895009B (zh) | 2021-09-03 |
Family
ID=61804941
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711105738.4A Active CN107895009B (zh) | 2017-11-10 | 2017-11-10 | 一种基于分布式的互联网数据采集方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107895009B (zh) |
Families Citing this family (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109088908A (zh) * | 2018-06-06 | 2018-12-25 | 武汉酷犬数据科技有限公司 | 一种面向网络的分布式通用数据采集方法和*** |
CN109285046A (zh) * | 2018-08-10 | 2019-01-29 | 浙江工业大学 | 一种基于业务插件化的电商大数据采集*** |
CN109145233A (zh) * | 2018-08-27 | 2019-01-04 | 山东浪潮商用***有限公司 | 互联网信息采集*** |
CN109445870A (zh) * | 2018-09-28 | 2019-03-08 | 浙江乾冠信息安全研究院有限公司 | 一种数据处理方法、电子设备以及存储介质 |
CN109542903B (zh) * | 2018-11-14 | 2022-02-25 | 珠海格力智能装备有限公司 | 数据处理方法及装置 |
CN110334139A (zh) * | 2018-12-18 | 2019-10-15 | 济南百航信息技术有限公司 | 一种通过模拟操作对接第三方***数据的方法 |
CN109753421B (zh) * | 2018-12-29 | 2022-06-10 | 广东益萃网络科技有限公司 | 服务***的优化方法、装置、计算机设备和存储介质 |
CN109783714A (zh) * | 2019-01-08 | 2019-05-21 | 上海因致信息科技有限公司 | 接口数据获取方法及*** |
CN109948079A (zh) * | 2019-03-11 | 2019-06-28 | 湖南衍金征信数据服务有限公司 | 一种分布式采集公开页面数据的方法 |
CN110147475B (zh) * | 2019-03-29 | 2023-07-21 | 汇通达网络股份有限公司 | 一种分布式部署的网络数据采集*** |
CN109933706A (zh) * | 2019-03-29 | 2019-06-25 | 北京达佳互联信息技术有限公司 | 一种数据获取方法、装置、电子设备及存储介质 |
CN110147362A (zh) * | 2019-04-04 | 2019-08-20 | 中电科大数据研究院有限公司 | 一种基于事件驱动的公文数据采集和处理***及其方法 |
CN110175862A (zh) * | 2019-04-16 | 2019-08-27 | 苏宁易购集团股份有限公司 | 用于电商平台的可售商品价格计算方法及*** |
CN110188258B (zh) * | 2019-04-19 | 2024-05-24 | 平安科技(深圳)有限公司 | 使用爬虫获取外部数据的方法及装置 |
CN110134854A (zh) * | 2019-05-28 | 2019-08-16 | 江苏快页信息技术有限公司 | 一种基于用户激励机制的爬虫采集方法 |
CN110347899B (zh) * | 2019-07-04 | 2021-06-22 | 北京熵简科技有限公司 | 基于事件驱动模型的分布式互联网数据采集***与方法 |
CN110457312B (zh) * | 2019-07-05 | 2023-07-07 | 中国平安财产保险股份有限公司 | 多类型数据的采集方法、装置、设备及可读存储介质 |
CN110365810B (zh) * | 2019-07-23 | 2022-02-08 | 中南民族大学 | 基于网络爬虫的域名缓存方法、装置、设备及存储介质 |
CN110737647B (zh) * | 2019-08-20 | 2023-07-25 | 广州宏数科技有限公司 | 一种互联网大数据清洗方法 |
CN110737813B (zh) * | 2019-09-26 | 2022-07-29 | 苏州浪潮智能科技有限公司 | 一种提高爬虫效率的方法、设备及介质 |
CN111221815B (zh) * | 2019-11-07 | 2021-07-27 | 南京莱斯网信技术研究院有限公司 | 一种基于脚本的web服务分页数据采集*** |
CN111428107B (zh) * | 2020-03-23 | 2023-09-01 | 新华智云科技有限公司 | 多中心综合网络爬虫*** |
CN111488508A (zh) * | 2020-04-10 | 2020-08-04 | 长春博立电子科技有限公司 | 一种支持多协议分布式高并发的互联网信息采集***及方法 |
CN111597421B (zh) * | 2020-04-30 | 2022-08-30 | 武汉思普崚技术有限公司 | 一种实现网站图片爬虫的方法、装置、设备及存储介质 |
CN111680203B (zh) * | 2020-05-07 | 2023-04-18 | 支付宝(杭州)信息技术有限公司 | 数据采集方法、装置和电子设备 |
CN111722980B (zh) * | 2020-06-11 | 2023-10-20 | 咪咕文化科技有限公司 | 数据采集***和方法 |
CN111881335A (zh) * | 2020-07-28 | 2020-11-03 | 芯薇(上海)智能科技有限公司 | 一种基于爬虫技术的多任务处理***及方法 |
CN111953766A (zh) * | 2020-08-07 | 2020-11-17 | 福建省天奕网络科技有限公司 | 一种网络数据采集的方法及其*** |
CN112100061A (zh) * | 2020-08-28 | 2020-12-18 | 广州探迹科技有限公司 | 一种可视化爬虫代码编写与调试方法 |
CN111949852A (zh) * | 2020-08-31 | 2020-11-17 | 东华理工大学 | 一种基于互联网大数据的宏观经济分析方法及*** |
CN112667873A (zh) * | 2020-12-16 | 2021-04-16 | 北京华如慧云数据科技有限公司 | 一种适用于多数网站通用采集数据的爬虫***及方法 |
CN112579862B (zh) * | 2020-12-22 | 2022-06-14 | 福建江夏学院 | 基于MD5值比对的Xpath自动提取方法 |
CN112650570A (zh) * | 2020-12-29 | 2021-04-13 | 百果园技术(新加坡)有限公司 | 可动态扩展的分布式爬虫***、数据处理方法及装置 |
CN112597373B (zh) * | 2020-12-29 | 2023-09-15 | 科技谷(厦门)信息技术有限公司 | 一种基于分布式爬虫引擎的数据采集方法 |
CN113934912A (zh) * | 2021-11-11 | 2022-01-14 | 北京搜房科技发展有限公司 | 数据爬取方法及装置、存储介质及电子设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102685220A (zh) * | 2012-04-28 | 2012-09-19 | 苏州阔地网络科技有限公司 | 一种基于web页面的数据交互方法及*** |
CN103970788A (zh) * | 2013-02-01 | 2014-08-06 | 北京英富森信息技术有限公司 | 一种基于网页爬取的爬虫技术 |
CN105956175A (zh) * | 2016-05-24 | 2016-09-21 | 考拉征信服务有限公司 | 网页内容爬取的方法和装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9703870B2 (en) * | 2014-11-05 | 2017-07-11 | Facebook, Inc. | Social-based optimization of web crawling for online social networks |
-
2017
- 2017-11-10 CN CN201711105738.4A patent/CN107895009B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102685220A (zh) * | 2012-04-28 | 2012-09-19 | 苏州阔地网络科技有限公司 | 一种基于web页面的数据交互方法及*** |
CN103970788A (zh) * | 2013-02-01 | 2014-08-06 | 北京英富森信息技术有限公司 | 一种基于网页爬取的爬虫技术 |
CN105956175A (zh) * | 2016-05-24 | 2016-09-21 | 考拉征信服务有限公司 | 网页内容爬取的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN107895009A (zh) | 2018-04-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107895009B (zh) | 一种基于分布式的互联网数据采集方法及*** | |
CN109033115B (zh) | 一种动态网页爬虫*** | |
CN109902220B (zh) | 网页信息获取方法、装置和计算机可读存储介质 | |
EP3534263A1 (en) | Systems and methods for web analytics testing and web development | |
US8326986B2 (en) | System and method for analyzing web paths | |
WO2016173200A1 (zh) | 用于检测恶意网址的方法和*** | |
CN105243159A (zh) | 一种基于可视化脚本编辑器的分布式网络爬虫*** | |
CN109040252A (zh) | 文件传输方法、***、计算机设备和存储介质 | |
CN108334641B (zh) | 采集用户行为数据的方法、***、电子设备、存储介质 | |
CN107885777A (zh) | 一种基于协作式爬虫的抓取网页数据的控制方法及*** | |
CN109840298B (zh) | 大规模网络数据的多信息来源采集方法和*** | |
CN103927370A (zh) | 一种组合文字和图片信息的网络资讯批量采集方法 | |
CN111552854A (zh) | 一种网页数据抓取方法、装置、存储介质和设备 | |
CN110417873B (zh) | 一种实现记录网页交互操作的网络信息提取*** | |
US10127617B2 (en) | System for analyzing social media data and method of analyzing social media data using the same | |
CN102870118A (zh) | 用户行为的获取方法、设备及*** | |
CN113656673A (zh) | 面向广告投放的主从分布内容爬取机器人 | |
CN111898036B (zh) | 一种行为数据收集处理***及方法 | |
CN109213824B (zh) | 数据抓取***、方法和装置 | |
CN110489698B (zh) | 一种自动化采集网页数据的***及方法 | |
CN107526748B (zh) | 一种识别用户点击行为的方法和设备 | |
CN112000866A (zh) | 互联网数据分析方法、装置、电子装置及介质 | |
CN116028192A (zh) | 一种多源异构数据采集方法、装置和存储介质 | |
Bahana et al. | Web crawler and back-end for news aggregator system (Noox project) | |
CN113515715B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20231012 Address after: Address: Building 44, Building 241, Shuaifuyuan Community, Tongzhou District, Beijing, 101100 Patentee after: Zhang Wei Address before: Floor 9, block D, Beifa building, No. 15, Xueyuan South Road, Haidian District, Beijing 100080 Patentee before: BEIJING GUOXIN HONGSHU TECHNOLOGY CO.,LTD. |
|
TR01 | Transfer of patent right |