一种爬取网络数据的方法和装置的制造方法

文档序号:9251076阅读:236来源:国知局
一种爬取网络数据的方法和装置的制造方法
【技术领域】
[0001]本发明涉及互联网技术领域,特别涉及一种爬取网络数据的方法和装置。
【背景技术】
[0002]随着互联网技术的发展,互联网的应用越来越广泛,互联网中网络数据的数据量也越来越大。人们可以通过浏览器在互联网中浏览网络数据,如新闻、视频和小说等。为了方便用户获取更多的网络数据,一些网站经常会从其他网站中爬取网络数据,将爬取到的网络数据设置在本网站中,爬取网络数据的处理通常由爬取服务器来完成。
[0003]爬取服务器中存储有大量的网址,这些网址可以是技术人员输入的,也可以是爬取服务器在爬取网络数据的过程中获取到的,爬取服务器会按照网址的获取顺序向网址对应的网站服务器发送数据请求,网站服务器接收到数据请求后,会返回相应的网络数据,爬取服务器则会对网络数据进行分析,获取有用的网络数据并进行存储,同时还可以对其中包含的网址进行存储,用于后续的爬取过程。
[0004]在实现本发明的过程中,发明人发现现有技术至少存在以下问题:
[0005]网站服务器通常设置有访问频率的上限,由于爬取服务器按照网址的获取顺序向网站服务器发送数据请求,因此经常会出现在某时间段内向某网站服务器发送大量的数据请求的情况,如果发送数据请求的频率大于该网站的访问频率的上限,该网站服务器将会屏蔽爬取服务器的IP (Internet Protocol,互联网协议)地址,导致爬取服务器在一定的时间段内无法从该网站服务器中爬取网络数据,从而使得爬取服务器爬取网络数据的效率较低。

【发明内容】

[0006]为了解决现有技术的问题,本发明实施例提供了一种爬取网络数据的方法和装置。所述技术方案如下:
[0007]第一方面,提供了一种爬取网络数据的方法,所述方法包括:
[0008]按照预设的轮询顺序,在预先存储的域名队列中逐个选取待爬取的域名;
[0009]在每次选取待爬取的域名后,如果选取的域名上一次被爬取的时间与当前时间的时间间隔超过预设的时间间隔阈值,则在所述选取的域名对应的网址队列中抽取待爬取的网址,对所述待爬取的网址进行网络数据爬取,如果选取的域名上一次被爬取的时间与当前时间的时间间隔未超过预设的时间间隔阈值,则选取下一个待爬取的域名。
[0010]第二方面,提供了一种爬取网络数据的装置,所述装置包括:
[0011]选取模块,用于按照预设的轮询顺序,在预先存储的域名队列中逐个选取待爬取的域名;
[0012]爬取模块,用于在每次选取待爬取的域名后,如果选取的域名上一次被爬取的时间与当前时间的时间间隔超过预设的时间间隔阈值,则在所述选取的域名对应的网址队列中抽取待爬取的网址,对所述待爬取的网址进行网络数据爬取,如果选取的域名上一次被爬取的时间与当前时间的时间间隔未超过预设的时间间隔阈值,则选取下一个待爬取的域名。
[0013]本发明实施例提供的技术方案带来的有益效果是:
[0014]本发明实施例中,按照预设的轮询顺序,在预先存储的域名队列中逐个选取待爬取的域名,在每次选取待爬取的域名后,如果选取的域名上一次被爬取的时间与当前时间的时间间隔超过预设的时间间隔阈值,则在选取的域名对应的网址队列中抽取待爬取的网址,对待爬取的网址进行网络数据爬取,如果选取的域名上一次被爬取的时间与当前时间的时间间隔未超过预设的时间间隔阈值,则选取下一个待爬取的域名,通过上述方法,如果需要对一个域名进行多次爬取(每次爬取该域名下一个网址中的网络数据),可以控制相邻两次爬取的时间间隔大于预设的时间间隔阈值,进而可以控制对该域名的访问频率不会超过某一上限值,因此,爬取服务器的IP将不会被网站服务器屏蔽,从而可以提高爬取网络数据的效率。
【附图说明】
[0015]为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0016]图1是本发明实施例提供的一种爬取网络数据的方法流程图;
[0017]图2是本发明实施例提供的一种系统框架图;
[0018]图3是本发明实施例提供的一种爬取网络数据的装置结构示意图;
[0019]图4是本发明实施例提供的一种爬取服务器的结构示意图。
【具体实施方式】
[0020]为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
[0021]实施例一
[0022]本发明实施例提供了一种爬取网络数据的方法,如图1所示,该方法的处理流程可以包括如下的步骤:
[0023]步骤101,按照预设的轮询顺序,在预先存储的域名队列中逐个选取待爬取的域名。
[0024]步骤102,在每次选取待爬取的域名后,如果选取的域名上一次被爬取的时间与当前时间的时间间隔超过预设的时间间隔阈值,则在选取的域名对应的网址队列中抽取待爬取的网址,对待爬取的网址进行网络数据爬取,如果选取的域名上一次被爬取的时间与当前时间的时间间隔未超过预设的时间间隔阈值,则选取下一个待爬取的域名。
[0025]本发明实施例中,按照预设的轮询顺序,在预先存储的域名队列中逐个选取待爬取的域名,在每次选取待爬取的域名后,如果选取的域名上一次被爬取的时间与当前时间的时间间隔超过预设的时间间隔阈值,则在选取的域名对应的网址队列中抽取待爬取的网址,对待爬取的网址进行网络数据爬取,如果选取的域名上一次被爬取的时间与当前时间的时间间隔未超过预设的时间间隔阈值,则选取下一个待爬取的域名,通过上述方法,如果需要对一个域名进行多次爬取(每次爬取该域名下一个网址中的网络数据),可以控制相邻两次爬取的时间间隔大于预设的时间间隔阈值,进而可以控制对该域名的访问频率不会超过某一上限值,因此,爬取服务器的IP将不会被网站服务器屏蔽,从而可以提高爬取网络数据的效率。
[0026]实施例二
[0027]本发明实施例提供了一种爬取网络数据的方法,该方法的执行主体为爬取服务器。其中,爬取服务器可以是某浏览器的后台服务器,也可以是某网站的后台服务器,爬取服务器可以是一台服务器,也可以是由多台服务器组成的服务器组。
[0028]下面将结合【具体实施方式】,对图1所示的处理流程进行详细的说明,内容可以如下:
[0029]步骤101,按照预设的轮询顺序,在预先存储的域名队列中逐个选取待爬取的域名。
[0030]在实施中,技术人员可以在爬取服务器中预先存储多个网站的域名,这些域名可以按照预先设置的轮询顺序以域名队列的形式进行存储。爬取服务器中还可以对应每个网站的域名存储该域名下的多个网址,组成该域名对应的网址队列。爬取服务器可以按照预先设置的轮询顺序,在域名队列中逐个选取域名,作为待爬取的域名。爬取服务器可以在达到预设的选取周期时进行选取,也可以在接收到选取指令时进行选取。
[0031]步骤102,在每次选取待爬取的域名后,如果选取的域名上一次被爬取的时间与当前时间的时间间隔超过预设的时间间隔阈值,则在选取的域名对应的网址队列中抽取待爬取的网址,对待爬取的网址进行网络数据爬取,如果选取的域名上一次被爬取的时间与当前时间的时间间隔未超过预设的时间间隔阈值,则选取下一个待爬取的域名。
[0032]在实施中,爬取服务器中可以预先设置时间间隔阈值,该时间间隔阈值可以由技术人员通过多次试验得到。当对同一域名进行网络数据爬取的时间间隔大于时间间隔阈值时,爬取服务器发送的用于爬取网络数据的数据请求将不会被该域名对应的网络服务器屏蔽。
[0033]具体地,每当爬取服务器对某域名下的网址进行网络数据爬取时,都可以对本次爬取网络数据的起始时间进行记录。爬取服务器按照预设的轮询顺序选取该域名作为待爬取的域名后,可以确定记录中上一次爬取该域名的时间与当前时间的时间间隔,然后可以将该时间间隔与预设的时间间隔阈值进行对比,如果该时间间隔大于预设的时间间隔阈值,则可以在该域名对应的网址队列中抽取某一网址,作为待爬取的网址,然后向该网址发送数据请求,上述域名对应的网络服务器则会返回相应的网络数据,爬取服务器接收到网络数据后,可以从网络数据中获取有价值的信息。例如,爬取
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1