CN106354843A - 网络爬虫系统以及方法 - Google Patents
网络爬虫系统以及方法 Download PDFInfo
- Publication number
- CN106354843A CN106354843A CN201610794314.2A CN201610794314A CN106354843A CN 106354843 A CN106354843 A CN 106354843A CN 201610794314 A CN201610794314 A CN 201610794314A CN 106354843 A CN106354843 A CN 106354843A
- Authority
- CN
- China
- Prior art keywords
- parameter
- link
- storage
- access
- sublink
- 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
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/953—Querying, e.g. by the use of web search engines
- G06F16/9535—Search customisation based on user profiles and personalisation
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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种网络爬虫系统以及方法,其中的网络爬虫方法包括:通过预设的界面接收配置参数,所述配置参数包括:控制参数、过滤参数、抽取参数以及存储参数;获取所述控制参数中的种子链接,根据所述种子链接进行爬取;若访问的链接匹配所述过滤参数,则过滤所述访问的链接并转入下一链接;根据所述抽取参数中的抽取规则对所述访问的链接对应的页面内容进行提取,得到目标数据;获取所述存储参数中的存储格式以及存储位置,将所述目标数据按照所述存储格式进行格式转换,并将转换后的数据存储在所述存储位置。本发明根据配置参数进行相应的爬取操作,实现爬取数据的存储,能够适用于多种环境,满足多种需求,可适用性高。
Description
技术领域
本发明涉及网络技术领域,尤其涉及一种网络爬虫系统以及方法。
背景技术
现阶段,随着网络技术的不断迅速发展,互联网的应用日益普及。
通过采用搜索引擎,可以帮助人们快速的查找到想要的信息。由于现有的搜索引擎返回的结果往往包含大量非相关的内容,当前技术中还采用爬虫工具来进行资源的搜集和抓取。
然而,现有的爬虫工具往往需要根据具体的应用环境进行程序编写,在更换环境了之后就无法使用,不能够满足不同用户不同的需求,普遍适用性较低,开发成本较高。
发明内容
本发明实施例提供一种网络爬虫系统以及方法,能够通过配置参数,适用于不同的环境,满足多种需求,适用性高。
本发明实施例第一方面提供了一种爬虫系统,包括:
配置模块,用于通过预设的界面接收配置参数,所述配置参数包括:控制参数、过滤参数、抽取参数以及存储参数;
控制模块,用于获取所述控制参数中的种子链接,根据所述种子链接进行爬取,所述爬取包括访问链接对应的页面以及获取所述页面上的链接;
过滤模块,用于当所述访问的链接匹配所述过滤参数时,过滤所述访问的链接并转入下一链接;
抽取模块,用于根据所述抽取参数中的抽取规则对所述访问的链接对应的页面内容进行提取,得到目标数据;
存储模块,用于获取所述存储参数中的存储格式以及存储位置,将所述目标数据按照所述存储格式进行格式转换,并将转换后的数据存储在所述存储位置。
可选地,所述控制模块,包括:
第一解析单元,用于解析所述控制参数,获取所述控制参数包括的种子链接,所述种子链接包括统一资源定位符;
爬取单元,用于访问所述种子链接对应的页面,根据所述控制参数进行爬取,其中,所述控制参数还包括:爬取深度、爬取线程数、页面限制数、时间间隔以及代理信息。
可选地,所述过滤模块,包括:
第二解析单元,用于解析所述访问的链接,判断所述访问的链接是否符合所述过滤参数指定的过滤规则,其中,所述过滤参数包括至少一个正则表达式;
确认单元,用于在所述访问的链接符合所述过滤参数指定的过滤规则时,确认所述访问的链接匹配所述过滤参数;
过滤单元,用于停止访问所述匹配所述过滤参数的链接,并转入访问下一链接。
可选地,所述抽取规则包括:抽取内容的格式以及路径;
所述抽取内容的格式包括:超文本标记语言格式以及JSON格式;
所述路径包括:层叠样式表选择器的表达式以及JSON路径表达式。
可选地,所述存储位置包括:本地路径、关系型数据库、高吞吐量分布式消息系统以及分布式文件系统中的至少一个;
所述存储格式包括:分隔符文件格式、JSON格式以及文本格式。
本发明实施例第二方面提供了一种网络爬虫方法,其特征在于,包括:
通过预设的界面接收配置参数,所述配置参数包括:控制参数、过滤参数、抽取参数以及存储参数;
获取所述控制参数中的种子链接,根据所述种子链接进行爬取,所述爬取包括访问链接对应的页面以及获取所述页面上的链接;
若所述访问的链接匹配所述过滤参数,则过滤所述访问的链接并转入下一链接;
根据所述抽取参数中的抽取规则对所述访问的链接对应的页面内容进行提取,得到目标数据;获取所述存储参数中的存储格式以及存储位置,将所述目标数据按照所述存储格式进行格式转换,并将转换后的数据存储在所述存储位置。
可选地,所述获取所述控制参数中的种子链接,根据所述种子链接进行爬取,包括:解析所述控制参数,获取所述控制参数包括的种子链接,所述种子链接包括统一资源定位符;访问所述种子链接对应的页面,根据所述控制参数进行爬取,其中,所述控制参数还包括:爬取深度、爬取线程数、页面限制数、时间间隔以及代理信息。
可选地,所述若所述访问的链接匹配所述过滤参数,则过滤所述访问的链接并转入下一链接,包括:
解析所述访问的链接,判断所述访问的链接是否符合所述过滤参数指定的过滤规则,其中,所述过滤参数包括至少一个正则表达式;
若符合,则确认所述访问的链接匹配所述过滤参数;
停止访问所述匹配所述过滤参数的链接,并转入访问下一链接。
可选地,所述抽取规则包括:抽取内容的格式以及路径;
所述抽取内容的格式包括:超文本标记语言格式以及JSON格式;
所述路径包括:层叠样式表选择器的表达式以及JSON路径表达式。
可选地,所述存储位置包括:本地路径、关系型数据库、高吞吐量分布式消息系统以及分布式文件系统中的至少一个;
所述存储格式包括:分隔符文件格式、JSON格式以及文本格式。
实施本发明实施例,具有如下有益效果:
本发明实施例中,通过预设的界面接收配置参数,根据配置参数实现爬取的控制、过滤、抽取以及存储,不仅能够提供友好的用户界面,而且还能够根据用户设置的配置参数进行相应的爬取操作,实现爬取数据的存储,能够适用于多种环境,满足多种需求,可适用性高。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种网络爬虫方法的第一实施例的流程图。
图2为本发明实施例提供的一种网络爬虫方法的第二实施例的流程图。
图3为本发明实施例提供的一种网络爬虫系统的第一实施例的结构示意图。
图4为本发明实施例提供的一种网络爬虫系统的第二实施例的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”和“第三”等是用于区别不同对象,而非用于描述特定顺序。此外,术语“包括”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
图1所示为本发明实施例提供的一种网络爬虫方法的第一实施例的流程图。在本实施方式中,所述网络爬虫方法可以应用于智能手机、平板电脑或者电脑上。比如,所述网络爬虫方法可以以web端的形式应用于电脑上,还可以以应用程序的形式应用在智能手机上,本实施例并不以此为限。所述网络爬虫方法包括以下步骤S101-S105。
在步骤S101中,通过预设的界面接收配置参数,所述配置参数包括:控制参数、过滤参数、抽取参数以及存储参数。
具体的,首先通过预设的界面接收用户输入的配置参数。其中,所述预设的界面可以是图形用户界面,所述图形用户界面上包括有多个可供编辑的窗口,用于供用户选择或者编辑配置参数,所述配置参数包括:控制参数、过滤参数、抽取参数以及存储参数。其中,所述控制参数用于控制抓取行为中爬虫的基本行为;所述过滤参数用于在爬虫路径中过滤掉不需要的路径或者指定需要爬取的路径,通过过滤参数的设置能够提高爬虫效率;所述抽取参数用于对爬取的指定路径上的内容设置爬取规则,根据爬取规则提取指定的内容;所述存储参数用于指定存储的位置以及存储格式。
在其他实施方式中,所述预设的界面也可以是程序写入界面,用户通过写入简单的程序语句进行配置,通过解析用户输入的程序语句接收配置参数。
在步骤S102中,获取所述控制参数中的种子链接,根据所述种子链接进行爬取,所述爬取包括访问链接对应的页面以及获取所述页面上的链接。
具体的,获取控制参数中的种子链接,根据种子链接进行爬取。其中,本实施方式中,种子链接包括用户预设的统一资源定位符URL,所述URL的个数可以为一个,也可以为一组。在抓取过程中,以所述种子链接中的URL为起点,访问URL对应的页面,并进一步的获取页面上的URL。可选的,所述控制参数中还可以包括爬取深度,在对页面进行访问获取URL时,当到达该爬取深度时,则停止再下一层的访问和挖取。
在步骤S103中,若所述访问的链接匹配所述过滤参数,则过滤所述访问的链接并转入下一链接。
具体的,在访问链接时,还需要判断所述链接是否需要进行过滤。通过解析过滤参数,判断当前访问的链接是否匹配过滤参数,如果符合,则需要过滤当前访问的链接,从而可以提升爬取效率。可选的,过滤参数中还可以针对性的指定爬取范围,进一步的提升爬取效率。
在步骤S104中,根据所述抽取参数中的抽取规则对所述访问的链接对应的页面内容进行提取,得到目标数据。
具体的,当访问连接对应的页面时,根据配置参数中的抽取参数对页面上的内容进行提取,以得到目标数据。其中,所述抽取规则包括:抽取内容的格式以及路径。由于待爬取的内容可以是多种格式,因此需要根据不同的格式进行路径的筛选。本实施方式中,所述抽取内容的格式包括:超文本标记语言格式以及JSON格式,对应的所述路径包括:层叠样式表选择器的表达式以及JSON路径表达式。
在步骤S105中,获取所述存储参数中的存储格式以及存储位置,将所述目标数据按照所述存储格式进行格式转换,并将转换后的数据存储在所述存储位置。
具体的,在对数据进行存储时,首先通过解析存储参数获取存储格式以及存储位置,将所述目标数据按照所述存储格式进行格式转换,并将转换后的数据存储在所述存储位置。在本实施方式中,所述存储位置包括:本地路径、关系型数据库、高吞吐量分布式消息系统以及分布式文件系统中的至少一个;所述存储格式包括:分隔符文件格式、JSON格式以及文本格式。可以理解的是,不同的存储位置下,设置的存储参数还会有所不同,比如,若存储位置为关系型数据库,则还需要提供相应的数据库用户名和密码,以便于访问,本发明实施例并不以此为限。
上述可知,本发明实施例中的网络爬虫方法,通过预设的界面接收配置参数,根据配置参数实现爬取的控制、过滤、抽取以及存储,不仅能够提供友好的用户界面,而且还能够根据用户设置的配置参数进行相应的爬取操作,实现爬取数据的存储,能够适用于多种环境,满足多种需求,可适用性高。
图2所示为本发明实施例提供的一种网络爬虫方法的第二实施例的流程图。在本实施方式中,所述网络爬虫方法包括以下步骤S201-S208。本实施例中S201的步骤与图1所示第一实施例中S101的步骤相同,S207-S208的步骤与图1所示第一实施例中S104-S105的步骤相同,在此不赘述。
在步骤S201中,通过预设的界面接收配置参数,所述配置参数包括:控制参数、过滤参数、抽取参数以及存储参数。
在步骤S202中,解析所述控制参数,获取所述控制参数包括的种子链接,所述种子链接包括统一资源定位符。
具体的,解析控制参数,获取控制参数中包括的种子链接,所述种子链接包括统一资源定位符URL。在接收配置参数时,会提供给用户多个可供编辑的窗口。在控制参数中,种子链接是必填项。只有在获取到种子链接包括的URL了之后,才能根据所述URL执行抓取操作。
在步骤S203中,访问所述种子链接对应的页面,根据所述控制参数进行爬取。
具体的,根据所述种子链接包括的URL,访问对应的页面,并根据控制参数进行爬取。在接收配置参数时,所述控制参数还可以包括多个选填项。下表给出了本实施方式中部分控制参数的配置示例。
如上表所示,在本实施方式中,所述控制参数还可以包括:爬取模式Mode、爬取深度Max Depth Of Crawling、爬取线程数Number Of Crawlers、页面限制数Max Pages ToFetch、时间间隔Politeness Delay以及代理信息。
其中,所述爬取模式用于设置爬虫运行模式,包括本地模式以及分布式模式。
具体的,当所述爬取模式为本地模式时,爬虫在本地运行,通过爬取数据,存储到指定的位置。
当所述爬取模式为分布式模式时,可以在远端建立多个爬取节点,多个爬取节点分别进行爬取操作。根据多个爬取节点之间的通信方式,分布式模式还可进一步分为主从模式、自治模式以及混合模式。在主从模式中,除了在远端存在多个爬取节点之外,还存在有一控制主机,各个爬取节点通过与控制主机建立通信连接,获取爬取任务以及配置参数;在自治模式中,各个爬取节点互相之间进行通信,维护并更新彼此的地址列表;在混合模式中,爬取节点之间可以相互通信,同时还可以互相分配任务。需要说明的是,本实施方式中,分布式模式不仅可以应用于局域网模式下,也可以应用于广域网模式下。
所述爬取深度用于设置爬虫在页面上爬取的层级;所述爬取线程数用于设置同时启动的爬虫线程个数;所述页面限制数用于限制同一时间最多爬取的页面数量;所述时间间隔用于设置每次爬取请求的时间间隔;所述代理信息包括网络连接的代理信息proxy以及用户代理信息user agent,若用户当前的网络环境为需要通过代理服务器连接网络,则需要在网络连接的代理信息中配置相应的参数,比如:主机、端口、用户名和密码等,用户代理信息主要用于模拟不同的浏览器,由于有些网站可同时支持多种模式访问,因此采用不同的用户代理信息访问得到的内容是不同的。
下面以代码为例,进一步的说明控制参数的配置。
代码举例:
<controller>
<mode>local</mode>
<seedFile>d:/seed.txt</seedFile>
<numberOfCrawlers>7</numberOfCrawlers>
<maxDepthOfCrawling>2</maxDepthOfCrawling>
<maxPagesToFetch>1000</maxPagesToFetch>
<politenessDelay>200</politenessDelay>
<proxy>
<host>host</host>
<port>port</port>
<username>username</username>
<password>password</password>
</proxy>
<resumableCrawling>true</resumableCrawling>
<userAgent>your user agent</userAgent>
</controller>
由上述代码可知,在本实例中,配置的运行模式为本地模式,采用的种子链接为用户导入的存放在D盘的seed.txt文件,爬取线程数为7,爬取深度为2,页面限制数为1000,时间间隔为200毫秒。
在步骤S204中,解析所述访问的链接,判断所述访问的链接是否符合所述过滤参数指定的过滤规则,其中,所述过滤参数包括至少一个正则表达式。
具体的,由于在爬取过程中会不断的获取到新的链接,如果对所有链接都进行访问和查看,效率会很低,因此,还需要通过设置过滤参数来进行过滤。在本实施方式中,在访问链接包括的URL之前,首先解析所述链接,判断所述链接是否符合过滤参数指定的过滤规则。其中,所述过滤规则可通过两种方式进行设置,可以通过不包含某些指定内容来排除相应的链接,也可以通过包含某些指定内容来指定相应的链接是需要访问的。
下表给出了本实施方式中部分过滤参数的配置示例。
如上表所示,所述过滤参数可以通过配置排除参数excludes,来过滤点不感兴趣的URL,提高爬取效率;也可以通过配置包含参数includes,来指定需要爬取的URL,缩小爬取范围,进一步的提升爬取效率。因此,判断所述链接是否符合过滤规则,包括判断所述链接是否符合排除规则,以及判断所述链接是否符合包含规则,当所述链接符合排除规则或者所述链接不符合包含规则时,则确认为所述链接符合过滤规则。在本实施方式中,所述排除参数和包含参数可以采用正则表达式格式。
下面以代码为例,进一步的说明过滤参数的配置。
代码举例:
<source>
<excludes>
<exclude
pattern=".*(\.(css|js|bmp|gif|jpe?g|ico|png|tiff?|mid|mp2|mp3|mp4|wav|avi|mov|mpeg|ram|m4v|pdf|rm|smil|wmv|swf|wma|zip|rar|gz))$"/>
</excludes>
<includes>
<include pattern="http://www.souche.com/pages/onsale/sale_car_list.html?(index=\d+)?"/>
</includes>
</source>
由上述代码可知,在本实例中,所述过滤参数通过配置排除参数排除包含了css、js、bmp等字符的链接,通过配置包含参数,指定需要访问的URL为http://www.souche.com/pages/onsale/sale_car_list.html?(index=\d+)?。
在步骤S205中,若符合所述过滤规则,则确认所述访问的链接匹配所述过滤参数。
具体的,若当前访问的链接符合根据排除参数配置的排除规则,或者所述链接不符合根据包含参数配置的包含规则,则确认为所述链接符合过滤规则。
在步骤S206中,停止访问所述匹配所述过滤参数的链接,并转入访问下一链接。
具体的,若当前链接符合过滤规则,则停止访问当前的链接,并转入访问下一链接,从而提升了爬取效率。
在步骤S207中,根据所述抽取参数中的抽取规则对所述访问的链接对应的页面内容进行提取,得到目标数据。
具体的,当访问连接对应的页面时,根据配置参数中的抽取参数生成的抽取规则,对页面上的内容进行提取,以得到目标数据。下表给出了本实施方式中部分抽取参数的配置示例。
如上表所示,在本实施方式中,所述抽取参数包括抽取内容的格式type、模式pattern、路径path、字段名field.name以及字段路径field.path。根据所述抽取参数生成抽取规则。
其中所述抽取内容的格式包括超文本标记语言格式html以及JSON格式;所述模式采用正则表达式格式,用于匹配URL;所述路径根据抽取内容的格式不同而有所不同,当抽取内容的格式为超文本标记语言格式时,所述路径为层叠样式表选择器的表达式,当抽取内容的格式为JSON格式时,所述路径为JSON路径表达式;所述字段名用于标识提取的元素字段名;所述字段路径用于标识元素的路径信息,其中,所述元素的路径信息根据格式的不同也会有所不同。在本实施方式中,通过设置抽取参数,能够更加精确的进行数据的抓取。
下面以代码为例,进一步的说明抽取参数的配置。
代码举例:
<extractors>
<extractor
type="html"pattern="http://www.souche.com/pages/onsale/sale_car_list.html?(index=\d+)?"path="div.carItem"default="true">
<field name="title"path="a.car-link"type="string"/>
<field name="price"path="div.car-price"type="string"/>
<field name="info"path="div.car-info"type="string"/>
</extractor>
</extractors>
由上述代码可知,在本实例中,所述抽取参数配置的抽取规则如下:抽取内容的格式为html,抽取的模式为对应的URL,抽取的路径为div.carItem,抽取的字段名有多种,分别为title、price、info,分别对应不同的路径。
在步骤S208中,获取所述存储参数中的存储格式以及存储位置,将所述目标数据按照所述存储格式进行格式转换,并将转换后的数据存储在所述存储位置。
具体的,在对数据进行存储时,首先通过解析存储参数获取存储格式以及存储位置,将所述目标数据按照所述存储格式进行格式转换,并将转换后的数据存储在所述存储位置。所述存储位置包括:本地路径、关系型数据库、高吞吐量分布式消息系统以及分布式文件系统中,由于存储位置的不同,相应的存储参数也会有所不同,下面分别距离进行说明。
当存储位置为本地路径时,对应的存储参数实例如下表所示。
如上表所示,当存储位置为本地路径时,对应的存储格式为分隔符文件格式格式csv,此外还需要对分隔符文件格式的分隔符、保存路径、写入阈值、是否覆盖等进行对应的设置。其中,所述分隔符文件格式可以采用多种分隔符来分隔字段值,优选的,可采用美国标准信息交换代码ASCII的控制符来进行分隔,从而避免由于字段值中出现指定的分隔符而导致分隔字段错位。
下面以代码为例,进一步的说明存储位置为本地时存储参数的配置。
代码举例:
<target type="csv"split="\001"savePath="d:/data/crawl/data.csv">
</target>
由上述代码可知,在本实例中,当存储到本地时,通过将目标数据转换为分隔符文件格式,将目标数据保存到d:/data/crawl/data.csv。
当存储位置为关系型数据库时,对应的存储参数实例如下表所示。
如上表所示,当存储位置为关系型数据库时,还需要设置数据库的驱动类名、连接字符串、用户名以及密码。
下面以代码为例,进一步的说明存储位置为关系型数据库时存储参数的配置。
代码举例:
<target type="db"jdbcDriverClassName="com.mysql.jdbc.Driver"
jdbcUrl="jdbc:mysql://192.168.9.129:3306/wifi_o2o?useUnicode=true&;characterEncoding=UTF-8&;autoReconnect=true"
jdbcUserName="xxx"jdbcPassword="xxx"
sql="insert into test.my_test_table(title,price,info)values(${title},${price},${info})"batchSize="20">
</target>
由上述代码可知,在本实例中,通过设置关系型数据库的具体类名、字符串、用户名和密码,能够将目标数据以数据库的形式保存到所述关系型数据库中。
当存储位置为高吞吐量分布式消息系统kafka MQ时,对应的存储参数实例如下表所示。
如上表所示,当存储位置为高吞吐量分布式消息系统时,存储格式可以为分隔符文件格式,也可以为JSON格式。此外还需要对高吞吐量分布式消息系统的列表brokerlist、主题topic、批量写入阈值batchsize进行配置。
下面以代码为例,进一步的说明存储位置为高吞吐量分布式消息系统时存储参数的配置。
代码举例:
<target
type="kafka"brokerList="n1:9092,n2:9092,n3:9092"topic="hupu_bbs_index_delta"rowFormat="cs v"/>
由上述代码可知,在本实例中,通过设置列表、主题、批量写入阈值,以及将存储格式设置为csv,能够将目标数据以csv的格式保存在高吞吐量分布式消息系统中。
当存储位置为分布式文件系统时,对应的存储参数实例如下表所示。
如上表所示,当存储位置为分布式文件系统时,还需要对连接字符串hdfsurl、保存路径savepath以及批量写入阈值batchsize进行设置。在本实施方式中,存储格式可以为文本格式txt。
下面以代码为例,进一步的说明存储位置为分布式文件系统时存储参数的配置。
<target type="hdfs"hdfsUrl="hdfs://n1:8020"savePath="/user/hive/warehouse/dd_abc"/>
由上述代码可知,在本实例中,通过设置连接字符串、保存路径、批量写入阈值等信息,将数据保存在/user/hive/warehouse/dd_abc路径下。
上述可知,本发明实施例中的网络爬虫方法,通过预设的界面接收配置参数,根据配置参数实现爬取的控制、过滤、抽取以及存储,不仅能够提供友好的用户界面,而且还能够根据用户设置的配置参数进行相应的爬取操作,实现爬取数据的存储,能够适用于多种环境,满足多种需求,可适用性高。
为便于更好的实施本发明实施例的上述方案,下面还提供用于配合实施上述方案的相关系统。
图3所示为本发明实施例提供的一种网络爬虫系统的第一实施例的结构示意图。在本实施方式中,所述网络爬虫系统可以应用于智能手机、平板电脑或者电脑上。比如,所述网络爬虫系统可以以web端的形式应用于电脑上,还可以以应用程序的形式应用在智能手机上,本实施例并不以此为限。
所述网络爬虫系统包括:
配置模块301,用于通过预设的界面接收配置参数,所述配置参数包括:控制参数、过滤参数、抽取参数以及存储参数;
控制模块302,用于获取所述控制参数中的种子链接,根据所述种子链接进行爬取,所述爬取包括访问链接对应的页面以及获取所述页面上的链接;
过滤模块303,用于当所述访问的链接匹配所述过滤参数时,过滤所述访问的链接并转入下一链接;
抽取模块304,用于根据所述抽取参数中的抽取规则对所述访问的链接对应的页面内容进行提取,得到目标数据;
存储模块305,用于获取所述存储参数中的存储格式以及存储位置,将所述目标数据按照所述存储格式进行格式转换,并将转换后的数据存储在所述存储位置。
可以理解的是,本实施例的系统的各功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再进行赘述。
上述可知,本发明实施例中的网络爬虫系统,通过预设的界面接收配置参数,根据配置参数实现爬取的控制、过滤、抽取以及存储,不仅能够提供友好的用户界面,而且还能够根据用户设置的配置参数进行精确的数据抓取操作,并实现爬取数据的存储,能够适用于多种环境,满足多种需求,可适用性高。
图4所示为本发明实施例提供的一种网络爬虫系统的第二实施例的结构示意图。
对比图3所示的第一实施例,在本实施例中,所述控制模块302可进一步包括:
第一解析单元3021,用于解析所述控制参数,获取所述控制参数包括的种子链接,所述种子链接包括统一资源定位符;
爬取单元3022,用于访问所述种子链接对应的页面,根据所述控制参数进行爬取,其中,所述控制参数还包括:爬取深度、爬取线程数、页面限制数、时间间隔以及代理信息。
所述过滤模块303可进一步包括:
第二解析单元3031,用于解析所述访问的链接,判断所述访问的链接是否符合所述过滤参数指定的过滤规则,其中,所述过滤参数包括至少一个正则表达式;
确认单元3032,用于在所述访问的链接符合所述过滤参数指定的过滤规则时,确认所述访问的链接匹配所述过滤参数;
过滤单元3033,用于停止访问所述匹配所述过滤参数的链接,并转入访问下一链接。
其中,所述抽取规则包括:抽取内容的格式以及路径;
所述抽取内容的格式包括:超文本标记语言格式以及JSON格式;
所述路径包括:层叠样式表选择器的表达式以及JSON路径表达式。
其中,所述存储位置包括:本地路径、关系型数据库、高吞吐量分布式消息系统以及分布式文件系统中的至少一个;
所述存储格式包括:分隔符文件、JSON格式以及文本格式。
可以理解的是,本实施例的系统的各功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再进行赘述。
上述可知,本发明实施例中的网络爬虫系统,通过预设的界面接收配置参数,根据配置参数实现爬取的控制、过滤、抽取以及存储,不仅能够提供友好的用户界面,而且还能够根据用户设置的配置参数进行精确的数据抓取操作,并实现爬取数据的存储,能够适用于多种环境,满足多种需求,可适用性高。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
Claims (10)
1.一种网络爬虫系统,其特征在于,包括:
配置模块,用于通过预设的界面接收配置参数,所述配置参数包括:控制参数、过滤参数、抽取参数以及存储参数;
控制模块,用于获取所述控制参数中的种子链接,根据所述种子链接进行爬取,所述爬取包括访问链接对应的页面以及获取所述页面上的链接;
过滤模块,用于当所述访问的链接匹配所述过滤参数时,过滤所述访问的链接并转入下一链接;
抽取模块,用于根据所述抽取参数中的抽取规则对所述访问的链接对应的页面内容进行提取,得到目标数据;
存储模块,用于获取所述存储参数中的存储格式以及存储位置,将所述目标数据按照所述存储格式进行格式转换,并将转换后的数据存储在所述存储位置。
2.如权利要求1所述的网络爬虫系统,其特征在于,所述控制模块,包括:
第一解析单元,用于解析所述控制参数,获取所述控制参数包括的种子链接,所述种子链接包括统一资源定位符;
爬取单元,用于访问所述种子链接对应的页面,根据所述控制参数进行爬取,其中,所述控制参数还包括:爬取深度、爬取线程数、页面限制数、时间间隔以及代理信息。
3.如权利要求1所述的网络爬虫系统,其特征在于,所述过滤模块,包括:
第二解析单元,用于解析所述访问的链接,判断所述访问的链接是否符合所述过滤参数指定的过滤规则,其中,所述过滤参数包括至少一个正则表达式;
确认单元,用于在所述访问的链接符合所述过滤参数指定的过滤规则时,确认所述访问的链接匹配所述过滤参数;
过滤单元,用于停止访问所述匹配所述过滤参数的链接,并转入访问下一链接。
4.如权利要求1所述的网络爬虫系统,其特征在于,所述抽取规则包括:抽取内容的格式以及路径;
所述抽取内容的格式包括:超文本标记语言格式以及JSON格式;
所述路径包括:层叠样式表选择器的表达式以及JSON路径表达式。
5.如权利要求1-4任一项所述的网络爬虫系统,其特征在于,所述存储位置包括:本地路径、关系型数据库、高吞吐量分布式消息系统以及分布式文件系统中的至少一个;
所述存储格式包括:分隔符文件格式、JSON格式以及文本格式。
6.一种网络爬虫方法,其特征在于,包括:
通过预设的界面接收配置参数,所述配置参数包括:控制参数、过滤参数、抽取参数以及存储参数;
获取所述控制参数中的种子链接,根据所述种子链接进行爬取,所述爬取包括访问链接对应的页面以及获取所述页面上的链接;
若所述访问的链接匹配所述过滤参数,则过滤所述访问的链接并转入下一链接;
根据所述抽取参数中的抽取规则对所述访问的链接对应的页面内容进行提取,得到目标数据;
获取所述存储参数中的存储格式以及存储位置,将所述目标数据按照所述存储格式进行格式转换,并将转换后的数据存储在所述存储位置。
7.如权利要求6所述的网络爬虫方法,其特征在于,所述获取所述控制参数中的种子链接,根据所述种子链接进行爬取,包括:
解析所述控制参数,获取所述控制参数包括的种子链接,所述种子链接包括统一资源定位符;
访问所述种子链接对应的页面,根据所述控制参数进行爬取,其中,所述控制参数还包括:爬取深度、爬取线程数、页面限制数、时间间隔以及代理信息。
8.如权利要求6所述的网络爬虫方法,其特征在于,所述若所述访问的链接匹配所述过滤参数,则过滤所述访问的链接并转入下一链接,包括:
解析所述访问的链接,判断所述访问的链接是否符合所述过滤参数指定的过滤规则,其中,所述过滤参数包括至少一个正则表达式;
若符合,则确认所述访问的链接匹配所述过滤参数;
停止访问所述匹配所述过滤参数的链接,并转入访问下一链接。
9.如权利要求6所述的网络爬虫方法,其特征在于,所述抽取规则包括:抽取内容的格式以及路径;
所述抽取内容的格式包括:超文本标记语言格式以及JSON格式;
所述路径包括:层叠样式表选择器的表达式以及JSON路径表达式。
10.如权利要求6-9任一项所述的网络爬虫方法,其特征在于,所述存储位置包括:本地路径、关系型数据库、高吞吐量分布式消息系统以及分布式文件系统中的至少一个;
所述存储格式包括:分隔符文件格式、JSON格式以及文本格式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610794314.2A CN106354843A (zh) | 2016-08-31 | 2016-08-31 | 网络爬虫系统以及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610794314.2A CN106354843A (zh) | 2016-08-31 | 2016-08-31 | 网络爬虫系统以及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106354843A true CN106354843A (zh) | 2017-01-25 |
Family
ID=57856341
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610794314.2A Pending CN106354843A (zh) | 2016-08-31 | 2016-08-31 | 网络爬虫系统以及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106354843A (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108416034A (zh) * | 2018-03-12 | 2018-08-17 | 宿州学院 | 基于金融异构大数据的信息采集系统及其控制方法 |
CN109063110A (zh) * | 2018-07-28 | 2018-12-21 | 安徽捷兴信息安全技术有限公司 | 一种应用商城中应用信息的抓取方法及装置 |
CN109902182A (zh) * | 2019-01-30 | 2019-06-18 | 北京百度网讯科技有限公司 | 知识数据处理方法、装置、设备及存储介质 |
CN110032674A (zh) * | 2019-01-31 | 2019-07-19 | 北京梆梆安全科技有限公司 | 数据提取方法、装置、服务器及存储介质 |
CN110309389A (zh) * | 2018-03-14 | 2019-10-08 | 北京嘀嘀无限科技发展有限公司 | 云计算系统 |
CN110515894A (zh) * | 2019-08-02 | 2019-11-29 | 济南浪潮数据技术有限公司 | 一种数据格式转换方法、装置、设备及可读存储介质 |
CN110851681A (zh) * | 2019-10-12 | 2020-02-28 | 平安科技(深圳)有限公司 | 爬虫处理方法、装置、服务器及计算机可读存储介质 |
CN112632358A (zh) * | 2020-12-29 | 2021-04-09 | 北京天融信网络安全技术有限公司 | 一种资源链接获取方法、装置、电子设备及存储介质 |
CN112836106A (zh) * | 2019-11-25 | 2021-05-25 | 北京国双科技有限公司 | 数据爬取应用的创建方法、装置、存储介质及设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101452463A (zh) * | 2007-12-05 | 2009-06-10 | 浙江大学 | 定向抓取页面资源的方法和装置 |
CN102855418A (zh) * | 2012-08-08 | 2013-01-02 | 周耕辉 | 发现Web内网代理漏洞的方法 |
CN102890702A (zh) * | 2012-07-19 | 2013-01-23 | 中国人民解放军国防科学技术大学 | 一种面向网络论坛的意见领袖挖掘方法 |
CN103970788A (zh) * | 2013-02-01 | 2014-08-06 | 北京英富森信息技术有限公司 | 一种基于网页爬取的爬虫技术 |
CN104978408A (zh) * | 2015-08-05 | 2015-10-14 | 许昌学院 | 基于Berkeley DB数据库的主题爬虫系统 |
CN105302876A (zh) * | 2015-09-28 | 2016-02-03 | 孙燕群 | 基于正则表达式的url过滤方法 |
-
2016
- 2016-08-31 CN CN201610794314.2A patent/CN106354843A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101452463A (zh) * | 2007-12-05 | 2009-06-10 | 浙江大学 | 定向抓取页面资源的方法和装置 |
CN102890702A (zh) * | 2012-07-19 | 2013-01-23 | 中国人民解放军国防科学技术大学 | 一种面向网络论坛的意见领袖挖掘方法 |
CN102855418A (zh) * | 2012-08-08 | 2013-01-02 | 周耕辉 | 发现Web内网代理漏洞的方法 |
CN103970788A (zh) * | 2013-02-01 | 2014-08-06 | 北京英富森信息技术有限公司 | 一种基于网页爬取的爬虫技术 |
CN104978408A (zh) * | 2015-08-05 | 2015-10-14 | 许昌学院 | 基于Berkeley DB数据库的主题爬虫系统 |
CN105302876A (zh) * | 2015-09-28 | 2016-02-03 | 孙燕群 | 基于正则表达式的url过滤方法 |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108416034A (zh) * | 2018-03-12 | 2018-08-17 | 宿州学院 | 基于金融异构大数据的信息采集系统及其控制方法 |
CN108416034B (zh) * | 2018-03-12 | 2021-11-16 | 宿州学院 | 基于金融异构大数据的信息采集系统及其控制方法 |
CN110309389A (zh) * | 2018-03-14 | 2019-10-08 | 北京嘀嘀无限科技发展有限公司 | 云计算系统 |
CN109063110A (zh) * | 2018-07-28 | 2018-12-21 | 安徽捷兴信息安全技术有限公司 | 一种应用商城中应用信息的抓取方法及装置 |
CN109902182A (zh) * | 2019-01-30 | 2019-06-18 | 北京百度网讯科技有限公司 | 知识数据处理方法、装置、设备及存储介质 |
CN110032674A (zh) * | 2019-01-31 | 2019-07-19 | 北京梆梆安全科技有限公司 | 数据提取方法、装置、服务器及存储介质 |
CN110515894A (zh) * | 2019-08-02 | 2019-11-29 | 济南浪潮数据技术有限公司 | 一种数据格式转换方法、装置、设备及可读存储介质 |
CN110851681A (zh) * | 2019-10-12 | 2020-02-28 | 平安科技(深圳)有限公司 | 爬虫处理方法、装置、服务器及计算机可读存储介质 |
CN112836106A (zh) * | 2019-11-25 | 2021-05-25 | 北京国双科技有限公司 | 数据爬取应用的创建方法、装置、存储介质及设备 |
CN112632358A (zh) * | 2020-12-29 | 2021-04-09 | 北京天融信网络安全技术有限公司 | 一种资源链接获取方法、装置、电子设备及存储介质 |
CN112632358B (zh) * | 2020-12-29 | 2021-09-14 | 北京天融信网络安全技术有限公司 | 一种资源链接获取方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106354843A (zh) | 网络爬虫系统以及方法 | |
CN111104635B (zh) | 一种表格网页的生成方法和装置 | |
CN101882162B (zh) | 一种网络信息推送方法及系统 | |
CN101770423B (zh) | 一种测试数据生成方法及测试系统 | |
CN103327080B (zh) | 创建物联网控制系统的方法及装置 | |
CN106302008A (zh) | 数据更新方法和装置 | |
CN105243159A (zh) | 一种基于可视化脚本编辑器的分布式网络爬虫系统 | |
CN103164333B (zh) | 嵌入式设备系统web调测方法及系统、web服务器 | |
CN103645951A (zh) | 一种跨平台的移动数据管理系统及其方法 | |
CN104407901B (zh) | 代码的添加方法和装置 | |
WO2010120579A2 (en) | Utilizing spreadsheet user interfaces with flowsheets of a cpi simulation system | |
CN103150165A (zh) | 用于构建户外数据采集程序的框架以及程序构建方法 | |
CN102419705A (zh) | Web GIS客户端控件生成与管理方法及装置 | |
CN106873952B (zh) | 移动端网页开发的数据处理系统和方法、及应用装置 | |
CN107729228A (zh) | 接口测试方法、装置、存储介质和处理器 | |
CN104321768A (zh) | 用于执行应用程序以通过浏览电信网络查阅可访问的内容和服务的方法和系统 | |
CN112433702B (zh) | 一种轻量级流程设计系统及方法 | |
CN104731606B (zh) | 基于识别抓取技术实现企业应用集成管理的系统及方法 | |
CN103412742A (zh) | 应用程序可配置ui的方法及装置 | |
CN108664665A (zh) | 数据格式转化方法、装置、设备及可读存储介质 | |
CN104182347A (zh) | 一种基于自动化测试平台的测试需求自动分析方法 | |
CN109165332A (zh) | 一种网页信息获取方法、装置以及设备 | |
CN102622224A (zh) | 在Windchill系统中实现带搜索功能的树状控件的方法 | |
CN104834594B (zh) | web系统测试方法及装置 | |
CN106096159A (zh) | 一种云平台下的分布式系统行为仿真分析系统的实现方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20170125 |