[发明专利]一种基于C#抓取互联网公开数据的爬虫系统及抓取方法在审
申请号: | 201710117081.7 | 申请日: | 2017-03-01 |
公开(公告)号: | CN106844774A | 公开(公告)日: | 2017-06-13 |
发明(设计)人: | 王杰;王金虎;邓会林 | 申请(专利权)人: | 苏州朗动网络科技有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 苏州中合知识产权代理事务所(普通合伙)32266 | 代理人: | 李中华 |
地址: | 215000 江苏省苏州市*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 c# 抓取 互联网 公开 数据 爬虫 系统 方法 | ||
技术领域
本发明属于数据采集技术领域,具体的涉及一种抓取互联网公开数据的爬虫系统及抓取方法。
背景技术
网络爬虫是一种按照一定的规则,自动化地浏览网络和自动化地抓取网页信息的程序或者脚本,是搜索引擎的重要组成部分,搜索引擎在实现网络爬虫的功能时,通常需要一个爬虫系统来实现。
目前市面上大部分爬虫系统或者框架都是采用Python,Java,PHPcrawer等技术,采用C#做爬虫的很少,C#爬虫系统也少,而由于C#是微软公司发布的一种面向对象的、运行于.NET Framework之上的高级程序设计语言,它使得程序员可以快速地编写各种基于MICROSOFT.NET平台的应用程序,如果设计开发对基于C#抓取互联网公开数据的爬虫系统将会大大提高程序员编写各种基于MICROSOFT.NET平台的应用程序的工作效率,因而,对基于C#抓取互联网公开数据的爬虫系统及抓取方法的需求是十分明显的。
发明内容
本发明的目的在于针对现有技术中的爬虫系统都是采用Python,Java,PHPcrawer等技术,采用C#做爬虫很少,因而影响程序员编写各种基于MICROSOFT.NET平台的应用程序的工作效率的问题。
为实现上述目的,本发明提供一种基于C#抓取互联网公开数据的爬虫系统,包括:
爬虫程序模块,所述爬虫程序模块用于浏览、抓取与校验数据;
服务器,所述服务器数量为至少两台,其内均部署有爬虫程序模块;
目标站,所述爬虫程序模块在确定的所述目标站上浏览、抓取数据;
非关系型数据库,所述非关系型数据库用于存储所述爬虫程序模块抓取的有效数据。
优选地,还包括第三方接口,用于外接验证码识别破解程序模块,所述验证码识别破解程序模块能够识别、破解所述目标站的访问请求验证码。
优选地,所述目标站、非关系型数据库、所述第三方接口也设置于至少两台所述服务器内。
优选地,所述爬虫程序模块内包含参数存储单元、目标站抓取单元、目标站分析确定单元、数据抓取单元、数据校验单元,所述参数存储单元存储参数,其输出端连接所述目标站抓取单元输入端,所述目标站抓取单元输出端连接所述目标站分析确定单元输入端、所述目标站分析确定单元输出端连接所述数据抓取单元输入端,所述数据抓取单元输出端连接所述数据校验单元输入端,所述数据校验单元与所述参数存储单元连接,所述数据校验单元输出端连接所述非关系型数据库。
优选地,所述数据抓取单元与所述数据校验单元之间还设置有数据转换单元,所述数据抓取单元将抓取到的数据输出给所述数据转换单元,经所述数据转换单元将数据使用正则表达式或者Json序列化方法加以筛选提取后输出给所述数据校验单元。
优选地,在所述数据抓取单元内设数据分页判断模块,数据分页判断模块用于判断数据是否分页,进而实现数据抓取单元抓取每一页数据。
优选地,所述非关系型数据库是NoSQL。
与现有技术相比,本发明所述的爬虫系统具有以下优点:
是基于C#抓取互联网公开数据,而不是Python,Java,PHPcrawer等技术,能够提高程序员编写各种基于MICROSOFT.NET平台的应用程序的工作效率;可外接验证码识别破解程序模块,支持多种验证码破解,能够更好更快的访问目标站;支持部署到多台服务器,减少服务器的负载压力,运行、存储更多数据;支持NOSQL数据存储,读取的速度得到大幅度提升。
本发明还提供一种基于C#抓取互联网公开数据的抓取方法,包括前文所述的基于C#抓取互联网公开数据的爬虫系统,还包括以下步骤:
S100,将所述爬虫程序模块部署到至少两台所述服务器;
S200,确定需要抓取数据的目标站并准备数据请求参数;
S300,使用c#语言模拟目标站访问请求,抓取到目标站的数据;
S400,将抓取到的数据使用正则表达式或者Json序列化方法加以筛选提取;
S500,验证抓取到的数据跟参数匹配看是否是有效数据;
S600,将有效数据存储到非关系型数据库。
优选地,所述步骤S300中包括:
S301,判断所述目标站访问请求是否需要验证验证码,若需要验证验证码,则抓取请求验证码参数并且调用破解验证码服务,然后将破解结果添加到访问请求中,抓取到目标站的数据;
S302,判断目标站的数据抓取是否成功,若成功,则进入步骤S400;若失败,则进入步骤S303;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于苏州朗动网络科技有限公司,未经苏州朗动网络科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710117081.7/2.html,转载请声明来源钻瓜专利网。