CN104967698B - 一种爬取网络数据的方法和装置 - Google Patents
一种爬取网络数据的方法和装置 Download PDFInfo
- Publication number
- CN104967698B CN104967698B CN201510080944.9A CN201510080944A CN104967698B CN 104967698 B CN104967698 B CN 104967698B CN 201510080944 A CN201510080944 A CN 201510080944A CN 104967698 B CN104967698 B CN 104967698B
- Authority
- CN
- China
- Prior art keywords
- network address
- domain name
- crawled
- added
- time
- 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
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种爬取网络数据的方法和装置,属于互联网技术领域。所述方法包括:按照预设的轮询顺序,在预先存储的域名队列中逐个选取待爬取的域名;在每次选取待爬取的域名后,如果选取的域名上一次被爬取的时间与当前时间的时间间隔超过预设的时间间隔阈值,则在所述选取的域名对应的网址队列中抽取待爬取的网址,对所述待爬取的网址进行网络数据爬取,如果选取的域名上一次被爬取的时间与当前时间的时间间隔未超过预设的时间间隔阈值,则选取下一个待爬取的域名。采用本发明,可以提高爬取网络数据的效率。
Description
技术领域
本发明涉及互联网技术领域,特别涉及一种爬取网络数据的方法和装置。
背景技术
随着互联网技术的发展,互联网的应用越来越广泛,互联网中网络数据的数据量也越来越大。人们可以通过浏览器在互联网中浏览网络数据,如新闻、视频和小说等。为了方便用户获取更多的网络数据,一些网站经常会从其他网站中爬取网络数据,将爬取到的网络数据设置在本网站中,爬取网络数据的处理通常由爬取服务器来完成。
爬取服务器中存储有大量的网址,这些网址可以是技术人员输入的,也可以是爬取服务器在爬取网络数据的过程中获取到的,爬取服务器会按照网址的获取顺序向网址对应的网站服务器发送数据请求,网站服务器接收到数据请求后,会返回相应的网络数据,爬取服务器则会对网络数据进行分析,获取有用的网络数据并进行存储,同时还可以对其中包含的网址进行存储,用于后续的爬取过程。
在实现本发明的过程中,发明人发现现有技术至少存在以下问题:
网站服务器通常设置有访问频率的上限,由于爬取服务器按照网址的获取顺序向网站服务器发送数据请求,因此经常会出现在某时间段内向某网站服务器发送大量的数据请求的情况,如果发送数据请求的频率大于该网站的访问频率的上限,该网站服务器将会屏蔽爬取服务器的IP(Internet Protocol,互联网协议)地址,导致爬取服务器在一定的时间段内无法从该网站服务器中爬取网络数据,从而使得爬取服务器爬取网络数据的效率较低。
发明内容
为了解决现有技术的问题,本发明实施例提供了一种爬取网络数据的方法和装置。所述技术方案如下:
第一方面,提供了一种爬取网络数据的方法,所述方法包括:
按照预设的轮询顺序,在预先存储的域名队列中逐个选取待爬取的域名;
在每次选取待爬取的域名后,如果选取的域名上一次被爬取的时间与当前时间的时间间隔超过预设的时间间隔阈值,则在所述选取的域名对应的网址队列中抽取待爬取的网址,对所述待爬取的网址进行网络数据爬取,如果选取的域名上一次被爬取的时间与当前时间的时间间隔未超过预设的时间间隔阈值,则选取下一个待爬取的域名。
第二方面,提供了一种爬取网络数据的装置,所述装置包括:
选取模块,用于按照预设的轮询顺序,在预先存储的域名队列中逐个选取待爬取的域名;
爬取模块,用于在每次选取待爬取的域名后,如果选取的域名上一次被爬取的时间与当前时间的时间间隔超过预设的时间间隔阈值,则在所述选取的域名对应的网址队列中抽取待爬取的网址,对所述待爬取的网址进行网络数据爬取,如果选取的域名上一次被爬取的时间与当前时间的时间间隔未超过预设的时间间隔阈值,则选取下一个待爬取的域名。
本发明实施例提供的技术方案带来的有益效果是:
本发明实施例中,按照预设的轮询顺序,在预先存储的域名队列中逐个选取待爬取的域名,在每次选取待爬取的域名后,如果选取的域名上一次被爬取的时间与当前时间的时间间隔超过预设的时间间隔阈值,则在选取的域名对应的网址队列中抽取待爬取的网址,对待爬取的网址进行网络数据爬取,如果选取的域名上一次被爬取的时间与当前时间的时间间隔未超过预设的时间间隔阈值,则选取下一个待爬取的域名,通过上述方法,如果需要对一个域名进行多次爬取(每次爬取该域名下一个网址中的网络数据),可以控制相邻两次爬取的时间间隔大于预设的时间间隔阈值,进而可以控制对该域名的访问频率不会超过某一上限值,因此,爬取服务器的IP将不会被网站服务器屏蔽,从而可以提高爬取网络数据的效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种爬取网络数据的方法流程图;
图2是本发明实施例提供的一种系统框架图;
图3是本发明实施例提供的一种爬取网络数据的装置结构示意图;
图4是本发明实施例提供的一种爬取服务器的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
实施例一
本发明实施例提供了一种爬取网络数据的方法,如图1所示,该方法的处理流程可以包括如下的步骤:
步骤101,按照预设的轮询顺序,在预先存储的域名队列中逐个选取待爬取的域名。
步骤102,在每次选取待爬取的域名后,如果选取的域名上一次被爬取的时间与当前时间的时间间隔超过预设的时间间隔阈值,则在选取的域名对应的网址队列中抽取待爬取的网址,对待爬取的网址进行网络数据爬取,如果选取的域名上一次被爬取的时间与当前时间的时间间隔未超过预设的时间间隔阈值,则选取下一个待爬取的域名。
本发明实施例中,按照预设的轮询顺序,在预先存储的域名队列中逐个选取待爬取的域名,在每次选取待爬取的域名后,如果选取的域名上一次被爬取的时间与当前时间的时间间隔超过预设的时间间隔阈值,则在选取的域名对应的网址队列中抽取待爬取的网址,对待爬取的网址进行网络数据爬取,如果选取的域名上一次被爬取的时间与当前时间的时间间隔未超过预设的时间间隔阈值,则选取下一个待爬取的域名,通过上述方法,如果需要对一个域名进行多次爬取(每次爬取该域名下一个网址中的网络数据),可以控制相邻两次爬取的时间间隔大于预设的时间间隔阈值,进而可以控制对该域名的访问频率不会超过某一上限值,因此,爬取服务器的IP将不会被网站服务器屏蔽,从而可以提高爬取网络数据的效率。
实施例二
本发明实施例提供了一种爬取网络数据的方法,该方法的执行主体为爬取服务器。其中,爬取服务器可以是某浏览器的后台服务器,也可以是某网站的后台服务器,爬取服务器可以是一台服务器,也可以是由多台服务器组成的服务器组。
下面将结合具体实施方式,对图1所示的处理流程进行详细的说明,内容可以如下:
步骤101,按照预设的轮询顺序,在预先存储的域名队列中逐个选取待爬取的域名。
在实施中,技术人员可以在爬取服务器中预先存储多个网站的域名,这些域名可以按照预先设置的轮询顺序以域名队列的形式进行存储。爬取服务器中还可以对应每个网站的域名存储该域名下的多个网址,组成该域名对应的网址队列。爬取服务器可以按照预先设置的轮询顺序,在域名队列中逐个选取域名,作为待爬取的域名。爬取服务器可以在达到预设的选取周期时进行选取,也可以在接收到选取指令时进行选取。
步骤102,在每次选取待爬取的域名后,如果选取的域名上一次被爬取的时间与当前时间的时间间隔超过预设的时间间隔阈值,则在选取的域名对应的网址队列中抽取待爬取的网址,对待爬取的网址进行网络数据爬取,如果选取的域名上一次被爬取的时间与当前时间的时间间隔未超过预设的时间间隔阈值,则选取下一个待爬取的域名。
在实施中,爬取服务器中可以预先设置时间间隔阈值,该时间间隔阈值可以由技术人员通过多次试验得到。当对同一域名进行网络数据爬取的时间间隔大于时间间隔阈值时,爬取服务器发送的用于爬取网络数据的数据请求将不会被该域名对应的网络服务器屏蔽。
具体地,每当爬取服务器对某域名下的网址进行网络数据爬取时,都可以对本次爬取网络数据的起始时间进行记录。爬取服务器按照预设的轮询顺序选取该域名作为待爬取的域名后,可以确定记录中上一次爬取该域名的时间与当前时间的时间间隔,然后可以将该时间间隔与预设的时间间隔阈值进行对比,如果该时间间隔大于预设的时间间隔阈值,则可以在该域名对应的网址队列中抽取某一网址,作为待爬取的网址,然后向该网址发送数据请求,上述域名对应的网络服务器则会返回相应的网络数据,爬取服务器接收到网络数据后,可以从网络数据中获取有价值的信息。例如,爬取服务器接收到显示某新闻的网页的网络数据,则可以从其中获取该新闻的文本信息,过滤掉该网页中广告和评论等信息。另外,对于接收到网络数据中存在网址信息的情况,如接收到对应某关键词的搜索页面的网络数据,爬取服务器可以获取其中的网址,并将这些网址加入到相应的网址队列中,以便后续爬取网络数据。爬取服务器还可以查询域名队列中是否存在获取到的网址对应的域名,如果不存在,则可以将获取到的网址对应的域名添加到域名队列中,以便后续根据对该域名对应的网址爬取网络数据。
如果爬取服务器可以确定当前时间与记录的时间的时间间隔后,判定该时间间隔小于预设的时间间隔阈值,则可以在上述域名队列中,按照预设的轮询顺序,选取下一个待爬取的域名。
可选的,可以预先设置各域名对应的网址队列中各网址的优先级,相应的,步骤102的处理过程可以如下:如果选取的域名上一次被爬取的时间与当前时间的时间间隔超过预设的时间间隔阈值,则根据预先存储的选取的域名对应的网址队列中各网址的优先级,在选取的域名对应的网址队列中抽取一个待爬取的网址,对待爬取的网址进行网络数据爬取。
在实施中,爬取服务器中可以预先设置各域名对应的网址队列中各网址的优先级。例如,新闻头条对应的网址为最高优先级,普通新闻对应的网址为第二优先级,发布时间超过24小时的新闻对应的网址的优先级为第三优先级。爬取服务器可以将每个网址与该网址的优先级进行对应的存储。爬取服务器按照预设的轮询顺序选取某域名作为待爬取的域名后,可以确定当前时间与记录的时间的时间间隔,然后可以将该时间间隔与预设的时间间隔阈值进行对比,如果该时间间隔大于预设的时间间隔阈值,则爬取服务器可以在该域名对应的网址队列中,根据各网址的优先级选取待爬取的网址。
可选的,基于上述预先设置各域名对应的网址队列中各网址的优先级的情况,步骤102的具体处理方式可以多种多样,以下给出了几种可行的处理方式:
方式一:如果选取的域名上一次被爬取的时间与当前时间的时间间隔超过预设的时间间隔阈值,则根据预先存储的选取的域名对应的网址队列中各网址的优先级,在选取的域名对应的网址队列中抽取一个优先级最高的待爬取的网址,对待爬取的网址进行网络数据爬取。
在实施中,爬取服务器确定当前时间与记录的时间的时间间隔后,如果判定该时间间隔大于预设的时间间隔阈值,则可以在选取的域名对应的网址队列中,根据预先存储的各网址的优先级,确定优先级最高的网址,然后从优先级最高的网址中抽取一个网址,作为待爬取的网址,进而可以对该网址进行网络数据爬取。每当爬取服务器选取某域名作为待爬取的域名时,如果该域名上一次被爬取的时间与当前时间的时间间隔超过预设的时间间隔阈值,则服务器对该域名对应的网址队列中优先级最高的网址进行抽取,直到爬取服务器将该域名对应的网址队列中优先级最高的网址全部抽取出来,然后可以确定从该域名对应的网址队列中第二优先级的网址,从第二优先级的网址中进行网址抽取,以便进行网络数据爬取,以此类推。
方式二:如果选取的域名上一次被爬取的时间与当前时间的时间间隔超过预设的时间间隔阈值,则根据选取的域名对应的网址队列中预先存储的各网址的优先级、对选取的域名对应的网址队列中的网址的抽取情况,以及各优先级对应的抽取数量阈值,在选取的域名对应的网址队列中抽取待爬取的网址,对待爬取的网址进行网络数据爬取。
在实施中,爬取服务器中除了可以预先设置各域名对应的网址队列中各网址的优先级,还可以设置每个优先级对应的抽取数量阈值。例如,最高优先级对应的抽取数量阈值为10个,第二优先级对应的抽取数量阈值为6个,第三优先级对应的抽取数量阈值为3个。爬取服务器还可以对各域名对应的网址队列中的网址的抽取情况进行记录,如从该域名对应的网址队列中最高优先级的网址中抽取了6个网址。每当爬取服务器选取某域名作为待爬取的域名时,如果该域名上一次被爬取的时间与当前时间的时间间隔超过预设的时间间隔阈值,则爬取服务器可以根据上述记录,确定已经从该域名对应的网址队列中最高优先级的网址中抽取了6个网址,则爬取服务器可以从该域名对应的网址队列中最高优先级的网址中抽取第7个网址。爬取服务器从该域名对应的网址队列中抽取最高优先级的网址数量达到10个时,可以对该域名对应的网址队列中第二优先级的网址进行抽取,当抽取数量达到6个时,可以对该域名对应的网址队列中第三优先级的网址进行抽取,以此类推。
可选的,可以对不同的域名设置不同的时间间隔阈值,相应的,步骤102的处理过程可以如下:在每次选取待爬取的域名后,获取预先存储的待爬取的域名对应的时间间隔阈值,如果选取的域名上一次被爬取的时间与当前时间的时间间隔超过获取到的时间间隔阈值,则在选取的域名对应的网址队列中抽取待爬取的网址,对待爬取的网址进行网络数据爬取,如果选取的域名上一次被爬取的时间与当前时间的时间间隔未超过获取到的时间间隔阈值,则选取下一个待爬取的域名。
在实施中,每个网站的访问频率的上限通常不相同,因此,爬取服务器中可以对应每个域名存储相应的时间间隔阈值。例如,域名1对应的时间间隔阈值为100ms,域名2对应的时间间隔阈值为50ms,域名3对应的时间间隔阈值为20ms。在每次选取待爬取的域名后,服务器可以获取该域名对应的时间间隔阈值,如50ms,如果该域名上一次被爬取的时间与当前时间的时间间隔超过50ms,则爬取服务器可以在该域名对应的网址队列中抽取待爬取的网址,对待爬取的网址进行网络数据爬取,如果选取的域名上一次被爬取的时间与当前时间的时间间隔未超过50ms,则可以选取下一个待爬取的域名。
可选的,可以在域名的网址队列中添加网址,相应的处理过程可以如下:接收网址添加指令,网址添加指令中携带有待添加网址;获取待添加网址对应的域名,如果获取到的域名对应的网址队列中存在与待添加网址相同的网址,则丢弃待添加网址,如果获取到的域名对应的网址队列中不存在与待添加网址相同的网址,则将待添加网址添加到网址队列中。
在实施中,爬取服务器可以接收网址添加指令,然后对网址添加指令进行解析,获取其中的待添加网址,进而可以获取待添加网址对应的域名。爬取服务器可以在获取到的域名对应的网址队列中查询是否存在与待添加网址相同的网址,如果存在,则丢弃该待添加网址,以提高爬取服务器的处理效率,如果获取到的域名对应的网址队列中不存在与待添加网址相同的网址,则将待添加网址添加到获取到的域名对应的网址队列中。
可选的,对于网址添加指令中还携带有待添加网址的优先级的情况,相应的处理过程可以如下:如果获取到的域名对应的网址队列中存在与待添加网址相同的网址,且待添加网址的优先级低于或等于网址队列中与待添加网址相同的网址的优先级,则丢弃待添加网址;如果获取到的域名对应的网址队列中存在与待添加网址相同的网址,且待添加网址的优先级高于网址队列中与待添加网址相同的网址的优先级,则将待添加网址添加到网址队列中。
在实施中,爬取服务器可以对网址添加指令进行解析,获取其中的待添加网址和待添加网址的优先级,进而可以获取待添加网址对应的域名,爬取服务器可以在获取到的域名对应的网址队列中查询是否存在与待添加网址相同的网址,如果存在,则服务器可以判断待添加网址的优先级是否高于网址队列中与待添加网址相同的网址的优先级。如果待添加网址的优先级低于或等于网址队列中与待添加网址相同的网址的优先级,则丢弃待添加网址,如果添加网址的优先级高于网址队列中与待添加网址相同的网址的优先级,则爬取服务器可以将待添加网址添加到网址队列中。
在实施中,对于爬取服务器是服务器组的情况,服务器组中可以包括存储服务器、频控服务器、请求服务器和处理服务器,如图2所示。其中,存储服务器用于存储大量的网址,并可以将存储的网址发送给频控服务器;频控服务器用于存储域名队列,按照预设的轮询顺序选取待爬取的域名,通过上述判断处理选取待爬取的网址,将待爬取的网址发送给请求服务器;请求服务器可以根据接收到的网址,向相应的网站服务器发送数据请求,以对待爬取的网址进行网络数据爬取,将接收到的网络数据发送给处理服务器;处理服务器用于对获取到的网络数据进行过滤,从其中获取有价值的网络数据,以便进行后续处理。另外,处理服务器从网络数据中获取到网址后,还可以将网址发送给存储服务器,以便对获取到的网址进行网络数据爬取。
本发明实施例中,按照预设的轮询顺序,在预先存储的域名队列中逐个选取待爬取的域名,在每次选取待爬取的域名后,如果选取的域名上一次被爬取的时间与当前时间的时间间隔超过预设的时间间隔阈值,则在选取的域名对应的网址队列中抽取待爬取的网址,对待爬取的网址进行网络数据爬取,如果选取的域名上一次被爬取的时间与当前时间的时间间隔未超过预设的时间间隔阈值,则选取下一个待爬取的域名,通过上述方法,如果需要对一个域名进行多次爬取(每次爬取该域名下一个网址中的网络数据),可以控制相邻两次爬取的时间间隔大于预设的时间间隔阈值,进而可以控制对该域名的访问频率不会超过某一上限值,因此,爬取服务器的IP将不会被网站服务器屏蔽,从而可以提高爬取网络数据的效率。
实施例三
基于相同的技术构思,本发明实施例还提供了一种爬取网络数据的装置,如图3所示,该装置包括:
选取模块310,用于按照预设的轮询顺序,在预先存储的域名队列中逐个选取待爬取的域名;
爬取模块320,用于在每次选取待爬取的域名后,如果选取的域名上一次被爬取的时间与当前时间的时间间隔超过预设的时间间隔阈值,则在所述选取的域名对应的网址队列中抽取待爬取的网址,对所述待爬取的网址进行网络数据爬取,如果选取的域名上一次被爬取的时间与当前时间的时间间隔未超过预设的时间间隔阈值,则选取下一个待爬取的域名。
可选的,所述爬取模块320,用于:
如果选取的域名上一次被爬取的时间与当前时间的时间间隔超过预设的时间间隔阈值,则根据预先存储的所述选取的域名对应的网址队列中各网址的优先级,在所述选取的域名对应的网址队列中抽取一个待爬取的网址,对所述待爬取的网址进行网络数据爬取。
可选的,所述爬取模块320,用于:
在每次选取待爬取的域名后,获取预先存储的所述待爬取的域名对应的时间间隔阈值,如果选取的域名上一次被爬取的时间与当前时间的时间间隔超过获取到的时间间隔阈值,则在所述选取的域名对应的网址队列中抽取待爬取的网址,对所述待爬取的网址进行网络数据爬取,如果选取的域名上一次被爬取的时间与当前时间的时间间隔未超过获取到的时间间隔阈值,则选取下一个待爬取的域名。
可选的,所述装置还包括:
接收模块,用于接收网址添加指令,所述网址添加指令中携带有待添加网址;
添加模块,用于获取所述待添加网址对应的域名,如果获取到的域名对应的网址队列中存在与所述待添加网址相同的网址,则丢弃所述待添加网址,如果获取到的域名对应的网址队列中不存在与所述待添加网址相同的网址,则将所述待添加网址添加到所述网址队列中。
可选的,所述网址添加指令中还携带有所述待添加网址的优先级;
所述添加模块,用于:
如果获取到的域名对应的网址队列中存在与所述待添加网址相同的网址,且所述待添加网址的优先级低于或等于所述网址队列中与所述待添加网址相同的网址的优先级,则丢弃所述待添加网址;
所述添加模块,还用于:
如果获取到的域名对应的网址队列中存在与所述待添加网址相同的网址,且所述待添加网址的优先级高于所述网址队列中与所述待添加网址相同的网址的优先级,则将所述待添加网址添加到所述网址队列中。
本发明实施例中,按照预设的轮询顺序,在预先存储的域名队列中逐个选取待爬取的域名,在每次选取待爬取的域名后,如果选取的域名上一次被爬取的时间与当前时间的时间间隔超过预设的时间间隔阈值,则在选取的域名对应的网址队列中抽取待爬取的网址,对待爬取的网址进行网络数据爬取,如果选取的域名上一次被爬取的时间与当前时间的时间间隔未超过预设的时间间隔阈值,则选取下一个待爬取的域名,通过上述方法,如果需要对一个域名进行多次爬取(每次爬取该域名下一个网址中的网络数据),可以控制相邻两次爬取的时间间隔大于预设的时间间隔阈值,进而可以控制对该域名的访问频率不会超过某一上限值,因此,爬取服务器的IP将不会被网站服务器屏蔽,从而可以提高爬取网络数据的效率。
需要说明的是:上述实施例提供的爬取网络数据的装置在爬取网络数据时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的爬取网络数据的装置与爬取网络数据的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
实施例四
图4是本发明实施例提供的爬取服务器的结构示意图。该爬取服务器1900可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(centralprocessing units,CPU)1922(例如,一个或一个以上处理器)和存储器1932,一个或一个以上存储应用程序1942或数据1944的存储介质1930(例如一个或一个以上海量存储设备)。其中,存储器1932和存储介质1930可以是短暂存储或持久存储。存储在存储介质1930的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对爬取服务器中的一系列指令操作。更进一步地,中央处理器1922可以设置为与存储介质1930通信,在爬取服务器1900上执行存储介质1930中的一系列指令操作。
爬取服务器1900还可以包括一个或一个以上电源1926,一个或一个以上有线或无线网络接口1950,一个或一个以上输入输出接口1958,一个或一个以上键盘1956,和/或,一个或一个以上操作系统1941,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
爬取服务器1900可以包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行以下操作的指令:
按照预设的轮询顺序,在预先存储的域名队列中逐个选取待爬取的域名;
在每次选取待爬取的域名后,如果选取的域名上一次被爬取的时间与当前时间的时间间隔超过预设的时间间隔阈值,则在所述选取的域名对应的网址队列中抽取待爬取的网址,对所述待爬取的网址进行网络数据爬取,如果选取的域名上一次被爬取的时间与当前时间的时间间隔未超过预设的时间间隔阈值,则选取下一个待爬取的域名。
可选的,所述如果选取的域名上一次被爬取的时间与当前时间的时间间隔超过预设的时间间隔阈值,则在所述选取的域名对应的网址队列中抽取待爬取的网址,对所述待爬取的网址进行网络数据爬取,包括:
如果选取的域名上一次被爬取的时间与当前时间的时间间隔超过预设的时间间隔阈值,则根据预先存储的所述选取的域名对应的网址队列中各网址的优先级,在所述选取的域名对应的网址队列中抽取一个待爬取的网址,对所述待爬取的网址进行网络数据爬取。
可选的,所述在每次选取待爬取的域名后,如果选取的域名上一次被爬取的时间与当前时间的时间间隔超过预设的时间间隔阈值,则在所述选取的域名对应的网址队列中抽取待爬取的网址,对所述待爬取的网址进行网络数据爬取,如果选取的域名上一次被爬取的时间与当前时间的时间间隔未超过预设的时间间隔阈值,则选取下一个待爬取的域名,包括:
在每次选取待爬取的域名后,获取预先存储的所述待爬取的域名对应的时间间隔阈值,如果选取的域名上一次被爬取的时间与当前时间的时间间隔超过获取到的时间间隔阈值,则在所述选取的域名对应的网址队列中抽取待爬取的网址,对所述待爬取的网址进行网络数据爬取,如果选取的域名上一次被爬取的时间与当前时间的时间间隔未超过获取到的时间间隔阈值,则选取下一个待爬取的域名。
可选的,所述方法还包括:
接收网址添加指令,所述网址添加指令中携带有待添加网址;
获取所述待添加网址对应的域名,如果获取到的域名对应的网址队列中存在与所述待添加网址相同的网址,则丢弃所述待添加网址,如果获取到的域名对应的网址队列中不存在与所述待添加网址相同的网址,则将所述待添加网址添加到所述网址队列中。
可选的,所述网址添加指令中还携带有所述待添加网址的优先级;
所述如果获取到的域名对应的网址队列中存在与所述待添加网址相同的网址,则丢弃所述待添加网址,包括:
如果获取到的域名对应的网址队列中存在与所述待添加网址相同的网址,且所述待添加网址的优先级低于或等于所述网址队列中与所述待添加网址相同的网址的优先级,则丢弃所述待添加网址;
所述方法还包括:
如果获取到的域名对应的网址队列中存在与所述待添加网址相同的网址,且所述待添加网址的优先级高于所述网址队列中与所述待添加网址相同的网址的优先级,则将所述待添加网址添加到所述网址队列中。
本发明实施例中,按照预设的轮询顺序,在预先存储的域名队列中逐个选取待爬取的域名,在每次选取待爬取的域名后,如果选取的域名上一次被爬取的时间与当前时间的时间间隔超过预设的时间间隔阈值,则在选取的域名对应的网址队列中抽取待爬取的网址,对待爬取的网址进行网络数据爬取,如果选取的域名上一次被爬取的时间与当前时间的时间间隔未超过预设的时间间隔阈值,则选取下一个待爬取的域名,通过上述方法,如果需要对一个域名进行多次爬取(每次爬取该域名下一个网址中的网络数据),可以控制相邻两次爬取的时间间隔大于预设的时间间隔阈值,进而可以控制对该域名的访问频率不会超过某一上限值,因此,爬取服务器的IP将不会被网站服务器屏蔽,从而可以提高爬取网络数据的效率。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (6)
1.一种爬取网络数据的方法,其特征在于,所述方法包括:
按照预设的轮询顺序,在预先存储的域名队列中逐个选取待爬取的域名;
在每次选取待爬取的域名后,获取预先存储的所述待爬取的域名对应的时间间隔阈值,如果选取的域名上一次被爬取的时间与当前时间的时间间隔超过获取到的时间间隔阈值,则在所述选取的域名对应的网址队列中抽取待爬取的网址,对所述待爬取的网址进行网络数据爬取,如果选取的域名上一次被爬取的时间与当前时间的时间间隔未超过获取到的时间间隔阈值,则选取下一个待爬取的域名;
接收网址添加指令,所述网址添加指令中携带有待添加网址;
获取所述待添加网址对应的域名,如果获取到的域名对应的网址队列中存在与所述待添加网址相同的网址,则丢弃所述待添加网址,如果获取到的域名对应的网址队列中不存在与所述待添加网址相同的网址,则将所述待添加网址添加到所述网址队列中。
2.根据权利要求1所述的方法,其特征在于,所述如果选取的域名上一次被爬取的时间与当前时间的时间间隔超过获取到的时间间隔阈值,则在所述选取的域名对应的网址队列中抽取待爬取的网址,对所述待爬取的网址进行网络数据爬取,包括:
如果选取的域名上一次被爬取的时间与当前时间的时间间隔超过获取到的时间间隔阈值,则根据预先存储的所述选取的域名对应的网址队列中各网址的优先级,在所述选取的域名对应的网址队列中抽取一个待爬取的网址,对所述待爬取的网址进行网络数据爬取。
3.根据权利要求1所述的方法,其特征在于,所述网址添加指令中还携带有所述待添加网址的优先级;
所述如果获取到的域名对应的网址队列中存在与所述待添加网址相同的网址,则丢弃所述待添加网址,包括:
如果获取到的域名对应的网址队列中存在与所述待添加网址相同的网址,且所述待添加网址的优先级低于或等于所述网址队列中与所述待添加网址相同的网址的优先级,则丢弃所述待添加网址;
所述方法还包括:
如果获取到的域名对应的网址队列中存在与所述待添加网址相同的网址,且所述待添加网址的优先级高于所述网址队列中与所述待添加网址相同的网址的优先级,则将所述待添加网址添加到所述网址队列中。
4.一种爬取网络数据的装置,其特征在于,所述装置包括:
选取模块,用于按照预设的轮询顺序,在预先存储的域名队列中逐个选取待爬取的域名;
爬取模块,用于在每次选取待爬取的域名后,获取预先存储的所述待爬取的域名对应的时间间隔阈值,如果选取的域名上一次被爬取的时间与当前时间的时间间隔超过获取到的时间间隔阈值,则在所述选取的域名对应的网址队列中抽取待爬取的网址,对所述待爬取的网址进行网络数据爬取,如果选取的域名上一次被爬取的时间与当前时间的时间间隔未超过获取到的时间间隔阈值,则选取下一个待爬取的域名;
接收模块,用于接收网址添加指令,所述网址添加指令中携带有待添加网址;
添加模块,用于获取所述待添加网址对应的域名,如果获取到的域名对应的网址队列中存在与所述待添加网址相同的网址,则丢弃所述待添加网址,如果获取到的域名对应的网址队列中不存在与所述待添加网址相同的网址,则将所述待添加网址添加到所述网址队列中。
5.根据权利要求4所述的装置,其特征在于,所述爬取模块,用于:
如果选取的域名上一次被爬取的时间与当前时间的时间间隔超过获取到的时间间隔阈值,则根据预先存储的所述选取的域名对应的网址队列中各网址的优先级,在所述选取的域名对应的网址队列中抽取一个待爬取的网址,对所述待爬取的网址进行网络数据爬取。
6.根据权利要求4所述的装置,其特征在于,所述网址添加指令中还携带有所述待添加网址的优先级;
所述添加模块,用于:
如果获取到的域名对应的网址队列中存在与所述待添加网址相同的网址,且所述待添加网址的优先级低于或等于所述网址队列中与所述待添加网址相同的网址的优先级,则丢弃所述待添加网址;
所述添加模块,还用于:
如果获取到的域名对应的网址队列中存在与所述待添加网址相同的网址,且所述待添加网址的优先级高于所述网址队列中与所述待添加网址相同的网址的优先级,则将所述待添加网址添加到所述网址队列中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510080944.9A CN104967698B (zh) | 2015-02-13 | 2015-02-13 | 一种爬取网络数据的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510080944.9A CN104967698B (zh) | 2015-02-13 | 2015-02-13 | 一种爬取网络数据的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104967698A CN104967698A (zh) | 2015-10-07 |
CN104967698B true CN104967698B (zh) | 2018-11-23 |
Family
ID=54221635
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510080944.9A Active CN104967698B (zh) | 2015-02-13 | 2015-02-13 | 一种爬取网络数据的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104967698B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106657422B (zh) * | 2015-10-30 | 2020-02-21 | 北京国双科技有限公司 | 爬取网站页面的方法、装置、系统和存储介质 |
CN106982268B (zh) * | 2016-01-18 | 2020-09-11 | 腾讯科技(北京)有限公司 | 一种信息处理方法和服务器 |
CN105721631B (zh) * | 2016-03-28 | 2019-04-30 | 中国科学院信息工程研究所 | 一种定向信息抓取场景中大规模ip地址资源使用方法 |
CN110851690A (zh) * | 2019-11-14 | 2020-02-28 | 北京计算机技术及应用研究所 | 一种对监测网站进行网络信息采集的方法和装置 |
CN112199175B (zh) * | 2020-04-02 | 2024-05-17 | 支付宝(杭州)信息技术有限公司 | 一种任务队列生成方法、装置及设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101178736A (zh) * | 2007-12-11 | 2008-05-14 | 腾讯科技(深圳)有限公司 | 网页抓取方法和网页抓取服务器 |
CN102469132A (zh) * | 2010-11-15 | 2012-05-23 | 北大方正集团有限公司 | 从网站中多个不同ip的服务器抓取网页的方法及系统 |
CN103914568A (zh) * | 2014-04-24 | 2014-07-09 | 厦门市美亚柏科信息股份有限公司 | 调度http代理的方法和装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7725452B1 (en) * | 2003-07-03 | 2010-05-25 | Google Inc. | Scheduler for search engine crawler |
-
2015
- 2015-02-13 CN CN201510080944.9A patent/CN104967698B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101178736A (zh) * | 2007-12-11 | 2008-05-14 | 腾讯科技(深圳)有限公司 | 网页抓取方法和网页抓取服务器 |
CN102469132A (zh) * | 2010-11-15 | 2012-05-23 | 北大方正集团有限公司 | 从网站中多个不同ip的服务器抓取网页的方法及系统 |
CN103914568A (zh) * | 2014-04-24 | 2014-07-09 | 厦门市美亚柏科信息股份有限公司 | 调度http代理的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN104967698A (zh) | 2015-10-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104967698B (zh) | 一种爬取网络数据的方法和装置 | |
CN104735138B (zh) | 一种面向用户生成内容的分布式采集方法与系统 | |
CN104615627B (zh) | 一种基于微博平台的事件舆情信息提取方法及系统 | |
CN107885777A (zh) | 一种基于协作式爬虫的抓取网页数据的控制方法及系统 | |
CN106446179B (zh) | 热点话题的生成方法及装置 | |
CN106941493B (zh) | 一种网络安全态势感知结果输出方法及装置 | |
CN106534145B (zh) | 一种应用识别方法及设备 | |
CN103077254B (zh) | 网页获取方法和装置 | |
CN105224396B (zh) | 一种业务数据处理方法和装置 | |
CN103116638B (zh) | 网页筛选方法及装置 | |
CN103823907B (zh) | 一种整合在线视频资源地址的方法、装置及引擎 | |
CN105095399B (zh) | 搜索结果推送方法及装置 | |
Sukumar et al. | Review on modern Data Preprocessing techniques in Web usage mining (WUM) | |
CN105635480B (zh) | 一种应用程序推荐方法及相应装置 | |
CN105471635B (zh) | 一种系统日志的处理方法、装置和系统 | |
KR20180075234A (ko) | 컨텐츠에 대한 유입검색어 및 연관검색어 기반의 컨텐츠 추천방법 및 추천장치 | |
Wong et al. | Design of a crawler for online social networks analysis | |
CN107239563A (zh) | 舆情信息动态监控方法 | |
CN105224691A (zh) | 一种信息处理方法及装置 | |
CN107612925A (zh) | 一种基于访问行为特征的WebShell挖掘方法 | |
CN107800686A (zh) | 一种钓鱼网站识别方法和装置 | |
CN104348871A (zh) | 一种同类账号扩展方法及装置 | |
CN103778156A (zh) | 数据搜索的方法和装置以及用于数据搜索的服务器 | |
CN109862074B (zh) | 一种数据采集方法、装置、可读介质及电子设备 | |
CN106708803A (zh) | 一种特征提取方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |