一种数据爬取方法及系统技术方案

技术编号:13674618 阅读:53 留言:0更新日期:2016-09-07 23:58
本发明专利技术公开了一种数据爬取方法及系统,包括:从url队列中获取目标网址,并获取目标网址的源代码;将目标网址的源代码存入html队列,并根据预定爬取规则,从目标网址的源代码中解析出目标网址的最终数据;判断目标网址的源代码是否存在url网址;若存在,则从目标网址的源代码中提取url网址,并存入url队列。可见,在本实施例中,通过url队列存储的预存网址获取源代码,并将从源代码中提取的url网址继续放入url队列,最终通过html队列获取源代码中的最终数据,这种通过浏览器访问的形式,直接绕过这些防爬手段,能获取到指定的信息,不仅能快速的爬取数据,还能降低爬取成本。

【技术实现步骤摘要】

本专利技术涉及数据爬取
,更具体地说,涉及一种数据爬取方法及系统
技术介绍
在Web前端开发的日常工作中,常常需要从互联网上收集大量的信息。如果用人工来完成,会消耗大量的人力和时间,因此更好的方法就是编写爬虫脚本来帮助我们完成信息的收集。爬虫程序会一直向服务器发送http请求,服务器就需要接收这些请求,并做相应的处理,最后返回数据。但是,爬虫也可以用这个原理,对服务器进行恶意的攻击,使用多个程序同时向同一台服务器发送http请求,导致服务器忙于处理,从而降低服务器性能,影响服务器的稳定性。因此,一些服务器就会使用一些措施来防止他们的内容被爬虫程序访问。一般的防爬虫网页上的使用的防爬方式可能不止一种,因此如果想要爬取该网页上的内容,就需要对网站的防爬虫手段进行具体分析,然后再在代码中写出相应的解决方法。如果网页采取了很多种的方式防止爬虫,那么使爬虫程序变得十分复杂,直接增加了爬虫的成本。因此,如何爬取数据是本领域技术人员需要解决的问题。
技术实现思路
本专利技术的目的在于提供一种数据爬取方法及系统,以实现低成本的爬取数据。为实现上述目的,本专利技术实施例提供了如下技术方案:一种数据爬取方法,包括:从url队列中获取目标网址,并获取所述目标网址的源代码;其中,所述url队列中存储的网址至少包括:预存网址,和/或,从源代码中提取的url网址;将所述目标网址的源代码存入html队列,并根据预定爬取规则,从所述目标网址的源代码中解析出所述目标网址的最终数据;判断所述目标网址的源代码是否存在url网址;若存在,则从所述目标网址的源代码中提取url网址,并存入所述url队列。其中,判断所述目标网址的源代码是否存在url网址,包括:判断所述目标网址的源代码中,是否存在满足预设网址规则的url网址。其中,所述从url队列中获取目标网址之前,包括:接收预存网址设置指令,并根据所述预存网址设置指令对所述url队列中的预存网址进行设置。其中,所述从url队列中获取目标网址之前,包括:接收线程数设置指令;其中,所述线程数设置指令至少包括:url运行线程数,和/或,html运行线程数。一种数据爬取系统,包括:目标网址获取模块,用于从url队列中获取目标网址;源代码获取模块,用于获取所述目标网址的源代码;其中,所述url队列中存储的网址至少包括:预存网址,和/或,从源代码中提取的url网址;第一存入模块,用于将所述目标网址的源代码存入html队列;数据解析模块,用于根据预定爬取规则,从所述目标网址的源代码中解析出所述目标网址的最终数据;判断模块,用于判断所述目标网址的源代码是否存在url网址;若存在,则触发第二存入模块;所述第二存入模块,用于所述目标网址的源代码中提取url网址,并存入所述url队列。其中,所述判断模块包括:判断单元,用于判断所述目标网址的源代码中,是否存在满足预设网址规则的url网址。其中,所述数据爬取系统包括:第一接收模块,用于接收预存网址设置指令;设置模块,用于根据所述预存网址设置指令对所述url队列中的预存网址进行设置。其中,所述数据爬取系统包括:第二接收模块,用于接收线程数设置指令;其中,所述线程数设置指令至少包括:url运行线程数,和/或,html运行线程数。通过以上方案可知,本专利技术实施例提供的一种数据爬取方法及系统,包括:从url队列中获取目标网址,并获取所述目标网址的源代码;其中,所述url队列中存储的网址至少包括:预存网址,和/或,从源代码中提取的url网址;将所述目标网址的源代码存入html队列,并根据预定爬取规则,从所述目标网址的源代码中解析出所述目标网址的最终数据;判断所述目标网址的源代码是否存在url网址;若存在,则从所述目标网址的源代码中提取url网址,并存入所述url队列。可见,在本实施例中,通过url队列存储的预存网址获取源代码,并将从源代码中提取的url网址继续放入url队列,最终通过html队列获取源代码中的最终数据,这种通过浏览器访问的形式,直接绕过这些防爬手段,能获取到指定的信息,不仅能快速的爬取数据,还能降低爬取成本。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术实施例公开的一种数据爬取方法流程示意图;图2为本专利技术实施例公开的一种数据爬取系统结构示意图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。本专利技术实施例公开了一种数据爬取方法及系统,以实现低成本的爬取数据。需要说明的是,本实施例中的爬取数据的方法,首先需要安装Selenium工具,Selenium是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持目前主流的浏览器,并且可以在多个平台下运行。参见图1,本专利技术实施例提供的一种数据爬取方法,包括:S101、从url队列中获取目标网址,并获取所述目标网址的源代码;其中,所述url队列中存储的网址至少包括:预存网址,和/或,从源代码中提取的url网址;其中,所述从url队列中获取目标网址之前,包括:接收预存网址设置指令,并根据所述预存网址设置指令对所述url队列中的预存网址进行设置。具体的,现有技术中的爬虫只能爬取某一个网站的指定信息,而在本实施例中通过读取预存网址设置指令,能对待读取的网址进行设置,从而实现了对多种网站数据的爬取。具体的,本实施例中的预设网址具体可以为一个网站的主网站,例如:homepage=http://www.imdb.com/,这样会爬取这个域名下的所有网页。如果只想爬取有某一特定规则的网页下的内容,也可以设置具体的网页规则,但是必须符合python语法。例如:url=“http://www.imdb.com/name/num%0.7d/?ref=numbio_bio_nm”%number。其中,所述从url队列中获取目标网址之前,包括:接收线程数设置指令;其中,所述线程数设置指令至少包括:url运行线程数,和/或,html运行线程数。具体的,本实施例中的线程数设置指令为用户根据主机配置进行设定的,一般个人电脑可以设置为10。S102、将所述目标网址的源代码存入html队列,并根据预定爬取规则,从所述目标网址的源代码中解析出所述目标网址的最终数据;具体的,本实施例中的预定爬取规则为预先设置的可以精确的查找到你所想要的信息的页面中的位置的规则,规则设置一定要有先后顺序。例如:Css选择器,查找id为itemprop的内容,那么设置id=itemprop,查找id为itemprop中的class为job的内容,那么设置id=itemprop,class=job,以此类推,也可以直接使用正则表达式进行内容定位,例如reg本文档来自技高网...

【技术保护点】
一种数据爬取方法,其特征在于,包括:从url队列中获取目标网址,并获取所述目标网址的源代码;其中,所述url队列中存储的网址至少包括:预存网址,和/或,从源代码中提取的url网址;将所述目标网址的源代码存入html队列,并根据预定爬取规则,从所述目标网址的源代码中解析出所述目标网址的最终数据;判断所述目标网址的源代码是否存在url网址;若存在,则从所述目标网址的源代码中提取url网址,并存入所述url队列。

【技术特征摘要】
1.一种数据爬取方法,其特征在于,包括:从url队列中获取目标网址,并获取所述目标网址的源代码;其中,所述url队列中存储的网址至少包括:预存网址,和/或,从源代码中提取的url网址;将所述目标网址的源代码存入html队列,并根据预定爬取规则,从所述目标网址的源代码中解析出所述目标网址的最终数据;判断所述目标网址的源代码是否存在url网址;若存在,则从所述目标网址的源代码中提取url网址,并存入所述url队列。2.根据权利要求1所述的数据爬取方法,其特征在于,判断所述目标网址的源代码是否存在url网址,包括:判断所述目标网址的源代码中,是否存在满足预设网址规则的url网址。3.根据权利要求2所述的数据爬取方法,其特征在于,所述从url队列中获取目标网址之前,包括:接收预存网址设置指令,并根据所述预存网址设置指令对所述url队列中的预存网址进行设置。4.根据权利要求3所述的数据爬取方法,其特征在于,所述从url队列中获取目标网址之前,包括:接收线程数设置指令;其中,所述线程数设置指令至少包括:url运行线程数,和/或,html运行线程数。5.一种数据爬取系统,其特征在于,包括:目标网址获取模块,...

【专利技术属性】
技术研发人员:祝奔
申请(专利权)人:珠海迈科智能科技股份有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1