CN110020043B - 页面爬取方法、装置、存储介质及处理器 - Google Patents
页面爬取方法、装置、存储介质及处理器 Download PDFInfo
- Publication number
- CN110020043B CN110020043B CN201710794640.8A CN201710794640A CN110020043B CN 110020043 B CN110020043 B CN 110020043B CN 201710794640 A CN201710794640 A CN 201710794640A CN 110020043 B CN110020043 B CN 110020043B
- Authority
- CN
- China
- Prior art keywords
- task
- crawling
- target
- address
- page
- 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
Images
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/951—Indexing; Web crawling techniques
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)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供了一种页面爬取方法、装置、存储介质及处理器,其中,该方法包括:获取页面爬取任务,其中,页面爬取任务包括爬取多个网页的任务,且爬取多个网页的任务为需要使用相同IP地址爬取的任务;从预设的代理IP池中获取一个目标代理IP地址;生成携带有目标代理IP地址的目标任务,并根据目标代理IP地址执行目标任务。采用上述技术方案,解决了使用相同IP地址爬取页面的爬取效率较低的问题,提高了使用相同IP地址爬取页面的爬取效率。
Description
技术领域
本发明涉及计算机领域,具体而言,涉及一种页面爬取方法、装置、存储介质及处理器。
背景技术
在分布式爬虫爬取网络页面过程中,有时需要在爬取某些页面时使用相同的IP地址,这些页面可以通过一些页面规则判断出来。传统的处理方法可以将当前站点的整站爬取锁定使用固定的爬虫去爬取,这样每个页面都使用相同的IP地址去爬取了。还可以将需要使用相同IP地址的页面内容打包,发送给某个固定的爬虫节点。这样也可以保证页面爬取时使用的IP地址相同。
传统方法中,上述第一种在爬取整个网站时使用固定的爬虫爬取的方法,系统逻辑复杂性比较低,但是会使得某些页面的爬取对于固定的爬虫节点有依赖,如果在爬取过程中爬虫节点出现问题,则整个站点的爬取都会失败,需要重新爬取。
上述第二种方法将任务打包发送给爬虫节点爬取时会使得系统设计变得复杂,需要在爬虫节点部分增加复杂的重试逻辑,并且还需要在任务分发时有打包的能力,并且页面之间的爬取需要使用相同的爬虫节点,如果任务数量比较大,则会使得爬虫节点获取同类任务变多,当前任务爬取速度变慢。
针对相关技术中使用相同IP地址爬取页面的爬取效率较低的问题,目前还没有有效地解决方案。
发明内容
本发明实施例提供了一种页面爬取方法、装置、存储介质及处理器,以至少解决相关技术中使用相同IP地址爬取页面的爬取效率较低的问题。
根据本发明的一个实施例,提供了一种页面爬取方法,包括:获取页面爬取任务,其中,所述页面爬取任务包括爬取多个网页的任务,且所述爬取多个网页的任务为需要使用相同IP地址爬取的任务;从预设的代理IP池中获取一个目标代理IP地址,其中,所述代理IP池用于存储一个或者多个代理IP地址;生成携带有所述目标代理IP地址的目标任务,并根据所述目标代理IP地址执行所述目标任务。
可选地,生成携带有所述目标代理IP地址的所述目标任务,根据所述目标代理IP地址执行所述目标任务包括:将所述爬取多个网页的任务独立包装成多个任务包,其中,每个所述任务包携带有爬取所述多个网页中的一个网页的任务以及所述目标代理IP地址;根据每个所述任务包中的目标代理IP地址执行该任务包所对应的一个网页的爬取任务。
可选地,根据每个所述任务包中的目标代理IP地址执行该任务包所对应的一个网页的爬取任务包括:将所述多个任务包下发至一个或者多个爬虫节点;获取并保存所述一个或者多个爬虫节点返回的爬取结果。
可选地,获取并保存所述一个或者多个爬虫节点返回的爬取结果包括:通过所述一个或者多个爬虫节点中的每个爬虫节点获取目标任务包,其中,所述目标任务包为所述多个任务包中的一个或者多个任务包;通过所述每个爬虫节点执行所述目标任务包中携带的目标页面爬取任务,得到所述爬取结果,其中,所述目标页面爬取任务为爬虫节点对所述目标任务包中携带的一个页面进行爬取的任务;获取并保存所述每个爬虫节点发送的所述爬取结果。
可选地,通过所述每个爬虫节点执行所述目标任务包中携带的目标页面爬取任务,得到所述爬取结果包括:通过所述每个爬虫节点判断所述目标任务包中携带的IP地址是否为代理IP地址;在通过所述每个爬虫节点判断出所述目标任务包中携带的IP地址为代理IP地址的情况下,通过所述每个爬虫节点根据所述目标代理IP地址向代理服务器发送页面爬取请求,其中,所述页面爬取请求中携带有所述目标页面爬取任务;通过所述每个爬虫节点接收所述代理服务器返回的爬取的页面信息,作为所述爬取结果。
根据本发明的另一个实施例,提供了一种页面爬取装置,包括:第一获取模块,用于获取页面爬取任务,其中,所述页面爬取任务包括爬取多个网页的任务,且所述爬取多个网页的任务为需要使用相同IP地址爬取的任务;第二获取模块,用于从预设的代理IP池中获取一个目标代理IP地址,其中,所述代理IP池用于存储一个或者多个代理IP地址;处理模块,用于生成携带有所述目标代理IP地址的目标任务,并根据所述目标代理IP地址执行所述目标任务。
可选地,所述处理模块包括:包装单元,用于将所述爬取多个网页的任务独立包装成多个任务包,其中,每个所述任务包携带有爬取所述多个网页中的一个网页的任务以及所述目标代理IP地址;执行单元,用于根据每个所述任务包中的目标代理IP地址执行该任务包所对应的一个网页的爬取任务。
可选地,所述执行单元包括:下发子单元,用于将所述多个任务包下发至一个或者多个爬虫节点;处理子单元,用于获取并保存所述一个或者多个爬虫节点返回的爬取结果。
可选地,所述处理子单元用于:通过所述一个或者多个爬虫节点中的每个爬虫节点获取目标任务包,其中,所述目标任务包为所述多个任务包中的一个或者多个任务包;通过所述每个爬虫节点执行所述目标任务包中携带的目标页面爬取任务,得到所述爬取结果,其中,所述目标页面爬取任务为爬虫节点对所述目标任务包中携带的一个页面进行爬取的任务;获取并保存所述每个爬虫节点发送的所述爬取结果。
可选地,所述处理子单元用于:通过所述每个爬虫节点判断所述目标任务包中携带的IP地址是否为代理IP地址;在通过所述每个爬虫节点判断出所述目标任务包中携带的IP地址为代理IP地址的情况下,通过所述每个爬虫节点根据所述代理IP地址向代理服务器发送页面爬取请求,其中,所述页面爬取请求中携带有所述目标页面爬取任务;通过所述每个爬虫节点接收所述代理服务器返回的爬取的页面信息,作为所述爬取结果。
根据本发明的又一个实施例,还提供了一种存储介质,所述存储介质包括存储的程序,其中,所述程序运行时执行上述任一项所述的方法。
根据本发明的又一个实施例,还提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行上述任一项所述的方法。
通过本发明,获取页面爬取任务,其中,页面爬取任务包括爬取多个网页的任务,且爬取多个网页的任务为需要使用相同IP地址爬取的任务;从预设的代理IP池中获取一个目标代理IP地址,其中,代理IP池用于存储一个或者多个代理IP地址;生成携带有目标代理IP地址的目标任务,并根据目标代理IP地址执行目标任务,由此可见,采用上述方案对于获取到的需要使用相同IP地址爬取的任务,从预设的代理池中获取一个目标代理IP地址,并生成携带有该目标代理IP地址的目标任务,从而根据目标代理IP地址执行目标任务,从而使得执行的目标任务能够全部使用相同的IP地址,同时目标任务中携带了相同的目标代理IP地址,使得目标任务可以由不同的爬虫节点进行爬取,从而提高了执行目标任务的速度,因此,提高了使用相同IP地址爬取页面的爬取效率,从而解决了相关技术中使用相同IP地址爬取页面的爬取效率较低的问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的页面爬取方法的流程图;
图2是根据本发明可选的实施方式的IP代理的示意图;
图3是根据本发明实施例的页面爬取装置的结构框图一;
图4是根据本发明实施例的页面爬取装置的结构框图二;
图5是根据本发明实施例的页面爬取装置的结构框图三;
图6是根据本发明可选实施例的使用相同IP爬取页面的方法的示意图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
实施例1
在本实施例中提供了一种页面爬取方法,图1是根据本发明实施例的页面爬取方法的流程图,如图1所示,该流程包括如下步骤:
步骤S102,获取页面爬取任务,其中,页面爬取任务包括爬取多个网页的任务,且爬取多个网页的任务为需要使用相同IP地址爬取的任务;
步骤S104,从预设的代理IP池中获取一个目标代理IP地址,其中,代理IP池用于存储一个或者多个代理IP地址;
步骤S106,生成携带有目标代理IP地址的目标任务,并根据目标代理IP地址执行目标任务。
可选地,上述页面爬取方法可以但不限于应用于对页面内容进行爬取的场景中。例如:对网站中的网页内容进行爬取的场景。
可选地,上述页面爬取方法可以但不限于应用于爬取页面内容的服务器,例如:分布式爬虫服务器。
可选地,在本实施例中,上述页面爬取任务中包括爬取多个网页的任务,该爬取多个网页的任务为需要使用相同IP地址爬取的任务,也就是说,爬取多个网页中的每一个网页需要使用同一个IP地址。例如:页面爬取任务可以但不限于为爬取一个网站的内容,该网站包括多个网页,每一个网页均需要使用相同的IP进行爬取。
可选地,在本实施例中,上述预设的代理IP池中存储了多个代理IP地址,当获取到需要使用相同IP地址爬取的页面爬取任务时,可以从代理IP池中随机选择一个目标代理IP地址,也可以根据代理IP池中存储的多个代理IP地址的优先级,获取一个优先级最高但未被使用的IP地址作为目标代理IP地址。
可选地,在本实施例中,在上述步骤S104之前,可以获取代理服务器提供的多个代理IP地址,并建立上述预设的代理IP池。其中,代理服务器可以为一个或者多个。
在一个可选的实施方式中,图2是根据本发明可选的实施方式的IP代理的示意图,如图2所示,IP代理是一种http请求的机制,爬虫获取内容时会发送http请求,使用IP代理时请求会被发送给代理服务器,由代理服务器向远端服务器发起真正请求并把返回结果发送回请求发起者。
通过上述步骤,对于获取到的需要使用相同IP地址爬取的任务,从预设的代理池中获取一个目标代理IP地址,并生成携带有该目标代理IP地址的目标任务,从而根据目标代理IP地址执行目标任务,从而使得执行的目标任务能够全部使用相同的IP地址,同时目标任务中携带了相同的目标代理IP地址,使得目标任务可以由不同的爬虫节点进行爬取,从而提高了执行目标任务的速度,因此,提高了使用相同IP地址爬取页面的爬取效率,从而解决了相关技术中使用相同IP地址爬取页面的爬取效率较低的问题。
可选地,在生成目标任务时,可以但不限于将每个页面都单独包装成任务包,同时在任务包中携带有目标代理IP地址,从而对每个网页进行单独的爬取,避免了多个网页共同爬取时一旦有网页爬取失败则需要全部重新爬取的现象产生,从而提高了网页爬取的效率。例如:在上述步骤S106中,将爬取多个网页的任务独立包装成多个任务包,其中,每个任务包携带有爬取多个网页中的一个网页的任务以及目标代理IP地址;根据每个任务包中的目标代理IP地址执行该任务包所对应的一个网页的爬取任务。
可选地,可以但不限于由爬虫节点来执行页面爬取的任务,爬虫节点可以但不限于是一个或者多个,将爬虫节点返回的爬取结果作为执行本次页面爬取任务的结果。例如:将多个任务包下发至一个或者多个爬虫节点,获取并保存一个或者多个爬虫节点返回的爬取结果。
在一个可选的实施方式中,获取到的页面爬取任务为爬取网站A的内容,其中,网站A包括3个页面,分别是:页面1、页面2和页面3。从预设的代理IP池中获取一个目标代理IP地址为IP1,可以将该页面爬取任务包装成3个任务包,其中,任务包1中携带有爬取页面1的任务以及IP1,任务包2中携带有爬取页面2的任务以及IP1,任务包3中携带有爬取页面3的任务以及IP1,将任务包1、任务包2和任务包3分发给2个爬虫节点,节点A和节点B,其中,节点A执行任务包1和任务包2,分别得到爬取结果1和爬取结果2,节点B执行任务包3,得到爬取结果3,接收并保存节点1和节点2返回的爬取结果1、爬取结果2和爬取结果3,作为本次页面爬取任务的执行结果。
可选地,每个爬虫节点分别执行分配到的爬取任务,得到各自的爬取结果,再对爬取结果进行保存。例如:通过一个或者多个爬虫节点中的每个爬虫节点获取目标任务包,其中,目标任务包为多个任务包中的一个或者多个任务包,通过每个爬虫节点执行目标任务包中携带的目标页面爬取任务,得到爬取结果,获取并保存每个爬虫节点发送的爬取结果。
可选地,上述目标页面爬取任务为爬虫节点对目标任务包中携带的一个页面进行爬取的任务。
可选地,爬虫节点执行爬取任务时,首先可以判断接收到的任务包中是否携带了代理IP地址,如果是,则向代理服务器发送请求,由代理服务器执行爬取任务,再获取代理服务器返回的页面信息作为爬取结果。例如:可以通过每个爬虫节点判断目标任务包中携带的IP地址是否为代理IP地址,在通过每个爬虫节点判断出目标任务包中携带的IP地址为代理IP地址的情况下,通过每个爬虫节点根据目标代理IP地址向代理服务器发送页面爬取请求,其中,页面爬取请求中携带有目标页面爬取任务,通过每个爬虫节点接收代理服务器返回的爬取的页面信息,作为爬取结果。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
实施例2
在本实施例中还提供了一种页面爬取装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图3是根据本发明实施例的页面爬取装置的结构框图一,如图3所示,该装置包括:
第一获取模块32,用于获取页面爬取任务,其中,页面爬取任务包括爬取多个网页的任务,爬取多个网页的任务为需要使用相同IP地址爬取的任务;
第二获取模块34,耦合至第一获取模32,用于从预设的代理IP池中获取一个目标代理IP地址,其中,代理IP池用于存储一个或者多个代理IP地址;
处理模块36,用于生成携带有目标代理IP地址的目标任务,并根据目标代理IP地址执行目标任务。
可选地,上述页面爬取装置可以但不限于应用于对页面内容进行爬取的场景中。例如:对网站中的网页内容进行爬取的场景。
可选地,上述页面爬取装置可以但不限于应用于爬取页面内容的服务器,例如:分布式爬虫服务器。
可选地,在本实施例中,上述页面爬取任务中包括爬取多个网页的任务,该爬取多个网页的任务为需要使用相同IP地址爬取的任务,也就是说,爬取多个网页中的每一个网页需要使用同一个IP地址。例如:页面爬取任务可以但不限于为爬取一个网站的内容,该网站包括多个网页,每一个网页均需要使用相同的IP进行爬取。
可选地,在本实施例中,上述预设的代理IP池中存储了多个代理IP地址,当获取到需要使用相同IP地址爬取的页面爬取任务时,可以从代理IP池中随机选择一个目标代理IP地址,也可以根据代理IP池中存储的多个代理IP地址的优先级,获取一个优先级最高但未被使用的IP地址作为目标代理IP地址。
可选地,在本实施例中,在上述步骤S104之前,可以获取代理服务器提供的多个代理IP地址,并建立上述预设的代理IP池。其中,代理服务器可以为一个或者多个。
在一个可选的实施方式中,图2是根据本发明可选的实施方式的IP代理的示意图,如图2所示,IP代理是一种http请求的机制,爬虫获取内容时会发送http请求,使用IP代理时请求会被发送给代理服务器,由代理服务器发起真正请求并把返回结果发送回请求发起者。
通过上述装置,对于获取到的需要使用相同IP地址爬取的任务,从预设的代理池中获取一个目标代理IP地址,并生成携带有该目标代理IP地址的目标任务,从而根据目标代理IP地址执行目标任务,从而使得执行的目标任务能够全部使用相同的IP地址,同时目标任务中携带了相同的目标代理IP地址,使得目标任务可以由不同的爬虫节点进行爬取,从而提高了执行目标任务的速度,因此,提高了使用相同IP地址爬取页面的爬取效率,从而解决了相关技术中使用相同IP地址爬取页面的爬取效率较低的问题。
图4是根据本发明实施例的页面爬取装置的结构框图二,如图4所示,可选地,处理模块36包括:
包装单元42,用于将爬取多个网页的任务独立包装成多个任务包,其中,每个任务包携带有爬取多个网页中的一个网页的任务以及目标代理IP地址;
执行单元44,耦合至包装单元42,用于根据每个任务包中的目标代理IP地址执行该任务包所对应的一个网页的爬取任务。
可选地,在生成目标任务时,可以但不限于将每个页面都单独包装成任务包,同时在任务包中携带有目标代理IP地址,从而对每个网页进行单独的爬取,避免了多个网页共同爬取时一旦有网页爬取失败则需要全部重新爬取的现象产生,从而提高了网页爬取的效率。
图5是根据本发明实施例的页面爬取装置的结构框图三,如图5所示,可选地,上述执行单元44包括:
下发子单元52,用于将多个任务包下发至一个或者多个爬虫节点;
处理子单元54,耦合至下发单元52,用于获取并保存一个或者多个爬虫节点返回的爬取结果。
可选地,可以但不限于由爬虫节点来执行页面爬取的任务,爬虫节点可以但不限于是一个或者多个,将爬虫节点返回的爬取结果作为执行本次页面爬取任务的结果。
在一个可选的实施方式中,获取到的页面爬取任务为爬取网站A的内容,其中,网站A包括3个页面,分别是:页面1、页面2和页面3。从预设的代理IP池中获取一个目标代理IP地址为IP1,可以将该页面爬取任务包装成3个任务包,其中,任务包1中携带有爬取页面1的任务以及IP1,任务包2中携带有爬取页面2的任务以及IP1,任务包3中携带有爬取页面3的任务以及IP1,将任务包1、任务包2和任务包3分发给2个爬虫节点,节点A和节点B,其中,节点A执行任务包1和任务包2,分别得到爬取结果1和爬取结果2,节点B执行任务包3,得到爬取结果3,接收并保存节点1和节点2返回的爬取结果1、爬取结果2和爬取结果3,作为本次页面爬取任务的执行结果。
可选地,处理子单元用于:通过一个或者多个爬虫节点中的每个爬虫节点获取目标任务包,其中,目标任务包为多个任务包中的一个或者多个任务包;通过每个爬虫节点执行目标任务包中携带的目标页面爬取任务,得到爬取结果,其中,目标页面爬取任务为爬虫节点对目标任务包中携带的一个页面进行爬取的任务;获取并保存每个爬虫节点发送的爬取结果。
可选地,每个爬虫节点分别执行分配到的爬取任务,得到各自的爬取结果,再对爬取结果进行保存。
可选地,处理子单元用于:通过每个爬虫节点判断目标任务包中携带的IP地址是否为代理IP地址;在通过每个爬虫节点判断出目标任务包中携带的IP地址为代理IP地址的情况下,通过每个爬虫节点根据目标代理IP地址向代理服务器发送页面爬取请求,其中,页面爬取请求中携带有目标页面爬取任务;通过每个爬虫节点接收代理服务器返回的爬取的页面信息,作为爬取结果。
可选地,爬虫节点执行爬取任务时,首先可以判断接收到的任务包中是否携带了代理IP地址,如果是,则向代理服务器发送请求,由代理服务器执行爬取任务,再获取代理服务器返回的页面信息作为爬取结果。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
下面结合本发明可选实施例进行详细说明。
本发明可选实施例提供了一种使用相同IP爬取页面的方法,图6是根据本发明可选实施例的使用相同IP爬取页面的方法的示意图,该方法包括如下步骤:
步骤一:建立IP代理池,IP代理可以来自于第三方供应商或者自己构建。
可选地,在本可选实施例中,IP代理是一种http请求的机制,爬虫获取内容时会发送http请求,使用IP代理时请求会被发送给代理服务器,由代理服务器发起爬取请求并把返回结果再发送回请求发起者。
步骤二:每当遇到需要使用相同IP爬取的任务时,从代理IP池中申请一个代理IP(相当于上述目标代理IP地址)。
可选地,在本可选实施例中,该步骤可以由爬取任务的分发模块执行,在分布式爬虫系统中,爬虫任务的分发可以由分发模块处理,分发出的任务会由爬取模块处理。这样的处理设计可以将两个模块之间的依赖解耦,使得两个模块相对独立。也就是说爬虫模块在拿到分发模块的任务时,并不需要知道分发模块是如何处理的。
步骤三:将所有需要使用相同IP爬取的任务分别包装成单独的爬取任务,每个任务中包含了步骤二中获取到的代理IP地址。
可选地,在本可选实施例中,分发模块在处理任务时会将每一个爬取任务单独包装,这样爬取模块就不用关心发送过来的多个任务如何重爬的逻辑了。例如:当一个任务中包含两个页面需要爬取时,爬取模块必须有相应的策略保证当前任务可以成功完成,其中需要对页面只有一个爬取成功、两个都成功和两个都失败的逻辑做相应的处理。如果任务中包含更多的页面内容,需要判断的逻辑就会非常复杂。在本可选实施例中,每个任务包只传递了一个任务,爬取模块只需要判断当前页面是否成功就可以了
步骤四:将任务分发给多个爬取模块。
可选地,在本可选实施例中,任务可以分发给多个爬取模块,整个任务由多个爬取模块完成,并不依赖于任何单独的爬取模块,这样做可以让需要用相同IP爬取的特殊任务和一般任务使用相同的分发逻辑。
步骤五:爬取模块拿到任务时会检查是否需要使用代理IP地址,如果需要就使用代理去请求页面内容,如果不需要就直接请求。
可选地,在本可选实施例中,爬取模块只需要关注每个任务是否成功完成就可以了,重试逻辑和验证逻辑都比较简单。
可选地,在本可选实施例中,爬取模块所做的检查只是检查是否需要使用代理IP地址,如果需要就使用代理IP去爬取,如果不需要就直接爬取。
步骤六:将爬取到的页面保存起来。
综上所述,根据本可选实施例中描述的步骤可以解决爬虫获取网页内容时需要使用相同IP的问题,相比于传统方法,这种方式可以降低系统复杂程度,提高爬取效率,使系统易于管理和维护。
以上实施例仅用以说明本发明的技术方案而非对其进行限制,本领域的普通技术人员可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明的精神和范围,本发明的保护范围应以权利要求所述为准。
实施例3
本发明的实施例还提供了一种存储介质,该存储介质包括存储的程序,其中,上述程序运行时执行上述任一项所述的方法。
可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的程序代码:
S1,获取页面爬取任务,其中,页面爬取任务包括爬取多个网页的任务,爬取多个网页的任务为需要使用相同IP地址爬取的任务;
S2,从预设的代理IP池中获取一个目标代理IP地址,其中,代理IP池用于存储一个或者多个代理IP地址;
S3,将爬取多个网页的任务包装成多个任务包,其中,多个任务包中的每个任务包携带有爬取多个网页中的一个网页的任务以及目标代理IP地址;
S4,根据多个任务包执行页面爬取任务。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
本发明的实施例还提供了一种处理器,该处理器用于运行程序,其中,该程序运行时执行上述任一项方法中的步骤。
可选地,在本实施例中,上述程序用于执行以下步骤:
S1,获取页面爬取任务,其中,页面爬取任务包括爬取多个网页的任务,爬取多个网页的任务为需要使用相同IP地址爬取的任务;
S2,从预设的代理IP池中获取一个目标代理IP地址,其中,代理IP池用于存储一个或者多个代理IP地址;
S3,将爬取多个网页的任务包装成多个任务包,其中,多个任务包中的每个任务包携带有爬取多个网页中的一个网页的任务以及目标代理IP地址;
S4,根据多个任务包执行页面爬取任务。
可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种页面爬取方法,其特征在于,包括:
获取页面爬取任务,其中,所述页面爬取任务包括爬取多个网页的任务,且所述爬取多个网页的任务为需要使用相同IP地址爬取的任务;
从预设的代理IP池中获取一个目标代理IP地址,其中,所述代理IP池用于存储多个代理IP地址;
生成携带有所述目标代理IP地址的目标任务,并根据所述目标代理IP地址执行所述目标任务;
其中,生成携带有所述目标代理IP地址的所述目标任务,根据所述目标代理IP地址执行所述目标任务包括:将所述爬取多个网页的任务独立包装成多个任务包,其中,每个所述任务包携带有爬取所述多个网页中的一个网页的任务以及所述目标代理IP地址;根据每个所述任务包中的目标代理IP地址执行该任务包所对应的一个网页的爬取任务。
2.根据权利要求1所述的方法,其特征在于,根据每个所述任务包中的目标代理IP地址执行该任务包所对应的一个网页的爬取任务包括:
将所述多个任务包下发至一个或者多个爬虫节点;
获取并保存所述一个或者多个爬虫节点返回的爬取结果。
3.根据权利要求2所述的方法,其特征在于,获取并保存所述一个或者多个爬虫节点返回的爬取结果包括:
通过所述一个或者多个爬虫节点中的每个爬虫节点获取目标任务包,其中,所述目标任务包为所述多个任务包中的一个或者多个任务包;
通过所述每个爬虫节点执行所述目标任务包中携带的目标页面爬取任务,得到所述爬取结果,其中,所述目标页面爬取任务为爬虫节点对所述目标任务包中携带的一个页面进行爬取的任务;
获取并保存所述每个爬虫节点发送的所述爬取结果。
4.根据权利要求3所述的方法,其特征在于,通过所述每个爬虫节点执行所述目标任务包中携带的目标页面爬取任务,得到所述爬取结果包括:
通过所述每个爬虫节点判断所述目标任务包中携带的IP地址是否为代理IP地址;
在通过所述每个爬虫节点判断出所述目标任务包中携带的IP地址为代理IP地址的情况下,通过所述每个爬虫节点根据所述目标代理IP地址向代理服务器发送页面爬取请求,其中,所述页面爬取请求中携带有所述目标页面爬取任务;
通过所述每个爬虫节点接收所述代理服务器返回的爬取的页面信息,作为所述爬取结果。
5.一种页面爬取装置,其特征在于,包括:
第一获取模块,用于获取页面爬取任务,其中,所述页面爬取任务包括爬取多个网页的任务,且所述爬取多个网页的任务为需要使用相同IP地址爬取的任务;
第二获取模块,用于从预设的代理IP池中获取一个目标代理IP地址,其中,所述代理IP池用于存储多个代理IP地址;
处理模块,用于生成携带有所述目标代理IP地址的目标任务,并根据所述目标代理IP地址执行所述目标任务;
其中,所述处理模块包括:包装单元,用于将所述爬取多个网页的任务独立包装成多个任务包,其中,每个所述任务包携带有爬取所述多个网页中的一个网页的任务以及所述目标代理IP地址;执行单元,用于根据每个所述任务包中的目标代理IP地址执行该任务包所对应的一个网页的爬取任务。
6.根据权利要求5所述的装置,其特征在于,所述执行单元包括:
下发子单元,用于将所述多个任务包下发至一个或者多个爬虫节点;
处理子单元,用于获取并保存所述一个或者多个爬虫节点返回的爬取结果。
7.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,所述程序运行时执行权利要求1至4中任一项所述的方法。
8.一种处理器,其特征在于,所述处理器用于运行程序,其中,所述程序运行时执行权利要求1至4中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710794640.8A CN110020043B (zh) | 2017-09-05 | 2017-09-05 | 页面爬取方法、装置、存储介质及处理器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710794640.8A CN110020043B (zh) | 2017-09-05 | 2017-09-05 | 页面爬取方法、装置、存储介质及处理器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110020043A CN110020043A (zh) | 2019-07-16 |
CN110020043B true CN110020043B (zh) | 2021-07-30 |
Family
ID=67186216
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710794640.8A Active CN110020043B (zh) | 2017-09-05 | 2017-09-05 | 页面爬取方法、装置、存储介质及处理器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110020043B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110995691A (zh) * | 2019-11-28 | 2020-04-10 | 佛山科学技术学院 | 一种获取网页数据的方法及系统 |
CN111241366A (zh) * | 2019-12-25 | 2020-06-05 | 杭州龙席网络科技股份有限公司 | 一种基于saas的客户社媒监控方法 |
CN111538883B (zh) * | 2020-03-25 | 2023-11-17 | 北京市科学技术情报研究所 | 一种数据爬取方法、系统及设备 |
CN111753162A (zh) * | 2020-06-29 | 2020-10-09 | 平安国际智慧城市科技股份有限公司 | 数据爬取方法、装置、服务器及存储介质 |
CN112800309A (zh) * | 2021-01-30 | 2021-05-14 | 上海应用技术大学 | 基于http代理的爬虫系统及其实现方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103389983A (zh) * | 2012-05-08 | 2013-11-13 | 阿里巴巴集团控股有限公司 | 一种用于网络爬虫系统的网页内容抓取方法及装置 |
CN103533097A (zh) * | 2013-10-10 | 2014-01-22 | 北京京东尚科信息技术有限公司 | 一种网络爬虫下载解析方法及装置 |
CN105956175A (zh) * | 2016-05-24 | 2016-09-21 | 考拉征信服务有限公司 | 网页内容爬取的方法和装置 |
CN106484886A (zh) * | 2016-10-17 | 2017-03-08 | 金蝶软件(中国)有限公司 | 一种数据采集的方法及其相关设备 |
CN107071009A (zh) * | 2017-03-28 | 2017-08-18 | 江苏飞搏软件股份有限公司 | 一种负载均衡的分布式大数据爬虫系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7701944B2 (en) * | 2007-01-19 | 2010-04-20 | International Business Machines Corporation | System and method for crawl policy management utilizing IP address and IP address range |
-
2017
- 2017-09-05 CN CN201710794640.8A patent/CN110020043B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103389983A (zh) * | 2012-05-08 | 2013-11-13 | 阿里巴巴集团控股有限公司 | 一种用于网络爬虫系统的网页内容抓取方法及装置 |
CN103533097A (zh) * | 2013-10-10 | 2014-01-22 | 北京京东尚科信息技术有限公司 | 一种网络爬虫下载解析方法及装置 |
CN105956175A (zh) * | 2016-05-24 | 2016-09-21 | 考拉征信服务有限公司 | 网页内容爬取的方法和装置 |
CN106484886A (zh) * | 2016-10-17 | 2017-03-08 | 金蝶软件(中国)有限公司 | 一种数据采集的方法及其相关设备 |
CN107071009A (zh) * | 2017-03-28 | 2017-08-18 | 江苏飞搏软件股份有限公司 | 一种负载均衡的分布式大数据爬虫系统 |
Also Published As
Publication number | Publication date |
---|---|
CN110020043A (zh) | 2019-07-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110020043B (zh) | 页面爬取方法、装置、存储介质及处理器 | |
EP3389219B1 (en) | Access request conversion method and device | |
CN105245373B (zh) | 一种容器云平台系统的搭建及运行方法 | |
CN103207785B (zh) | 数据下载请求的处理方法、装置及系统 | |
CN104184832B (zh) | 网络应用中的数据提交方法及装置 | |
CN106933871A (zh) | 短链接处理方法、装置及短链接服务器 | |
CN104852934A (zh) | 基于前端调度实现流量分配的方法、装置和系统 | |
CN109254854A (zh) | 异步调用方法、计算机装置及存储介质 | |
CN111083113A (zh) | 拟态分发系统、方法及介质 | |
CN108933829A (zh) | 一种负载均衡方法及装置 | |
CN113127192A (zh) | 一种多个服务共享同一个gpu的方法、系统、设备及介质 | |
CN106156231A (zh) | 一种网站容灾方法、装置及系统 | |
CN113676563B (zh) | 内容分发网络服务的调度方法、装置、设备及存储介质 | |
CN107315972A (zh) | 一种大数据非结构化文件动态脱敏方法及系统 | |
JP6859518B2 (ja) | サーバへの攻撃を防ぐ方法及びデバイス | |
US11539815B2 (en) | Enhanced self-assembling and self-configuring microservices | |
CN105740258A (zh) | 基于幂等号校验的业务处理方法及装置 | |
CN110278192A (zh) | 外网访问内网的方法、装置、计算机设备及可读存储介质 | |
CN103647811B (zh) | 一种实现应用访问后台服务的方法和装置 | |
CN104376056B (zh) | 一种数据处理的方法和装置 | |
CN103338233A (zh) | 负载均衡设备、Web服务器及请求信息处理方法和系统 | |
CN110489957A (zh) | 访问请求的管理方法和计算机存储介质 | |
CN107295052A (zh) | 一种业务处理方法及装置 | |
CN111800511B (zh) | 同步登录态的处理方法、系统、设备及可读存储介质 | |
CN107404515A (zh) | 异步http请求的处理方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 100083 No. 401, 4th Floor, Haitai Building, 229 North Fourth Ring Road, Haidian District, Beijing Applicant after: Beijing Guoshuang Technology Co.,Ltd. Address before: 100086 Beijing city Haidian District Shuangyushu Area No. 76 Zhichun Road cuigongfandian 8 layer A Applicant before: Beijing Guoshuang Technology Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |