一种基于代理的HTTP报文采集方法、终端设备及存储介质转让专利

申请号 : CN202110158253.1

文献号 : CN112995291B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 赖子琪王博朱振水

申请人 : 厦门市美亚柏科信息股份有限公司

摘要 :

本发明涉及一种基于代理的HTTP报文采集方法、终端设备及存储介质,该方法中包括:S1:构建HTTP报文代理模块,通过HTTP报文代理模块接收爬虫模块发送的HTTP请求报文;S2:判断HTTP报文库是否存在与接收的HTTP请求报文相同的HTTP请求报文,如果是,进入S4;否则,进入S3;S3:将HTTP请求报文转发至对应的爬取目标服务器,并接收HTTP响应报文,将HTTP响应报文转发至爬虫模块,同时将HTTP请求报文和HTTP响应报文存入HTTP报文库内,并记录关联关系;S4:从HTTP报文库获取HTTP请求报文关联的HTTP响应报文,并将其转发至爬虫模块。本发明从而避免了爬虫模块对不是由爬取目标服务器的内容更新而进行的重新采集,减轻了爬取目标服务器的负担,也避免了可能造成的网络虚拟财产损失。

权利要求 :

1.一种基于代理的HTTP报文采集方法,其特征在于,包括以下步骤:

S1:构建HTTP报文代理模块,通过HTTP报文代理模块接收爬虫模块发送的HTTP请求报文;

S2:HTTP报文代理模块接收到HTTP请求报文后,判断HTTP报文库是否存在与接收的HTTP请求报文相同的HTTP请求报文,如果是,进入S4;否则,进入S3;

S3:将HTTP请求报文转发至对应的爬取目标服务器,并接收来自爬取目标服务器的HTTP响应报文,将HTTP响应报文转发至爬虫模块,同时将HTTP请求报文和HTTP响应报文存入HTTP报文库内,并记录两者之间的关联关系;

S4:从HTTP报文库获取HTTP请求报文关联的HTTP响应报文,并将其转发至爬虫模块;

当传输采用HTTPS协议时,爬虫模块发送的HTTP请求报文采用第一TLS证书进行加密;

HTTP报文代理模块转发HTTP请求报文时,首先通过第一TLS证书进行解密后,再通过第二TLS证书进行加密,将加密后的HTTP请求报文转发至爬取目标服务器;第一TLS证书通过HTTP报文代理模块对应的TLS证书签发机构,第二TLS证书通过爬虫目标服务器对应的TLS证书签发机构提供。

2.根据权利要求1所述的基于代理的HTTP报文采集方法,其特征在于:HTTP报文代理模块接收到HTTP请求报文后,先将其解析为HTTP协议标准格式后,暂存于内存中;当HTTP报文代理模块接收到来自爬取目标服务器的HTTP响应报文后,先将HTTP响应报文解析为HTTP协议标准格式后,再与内存中暂存的HTTP请求报文共同存储至HTTP报文库内。

3.根据权利要求1所述的基于代理的HTTP报文采集方法,其特征在于:如果一个HTTP请求报文从爬取目标服务器中获取了多个HTTP响应报文时,在HTTP报文库内存储多个HTTP响应报文的先后顺序。

4.根据权利要求1所述的基于代理的HTTP报文采集方法,其特征在于:还包括针对存储于HTTP报文库内的所有报文进行数据挖掘和分析处理,得到不同报文之间的关联关系,将与待转发的HTTP响应报文具有关联关系的其他HTTP响应报文共同发送至爬虫模块。

5.根据权利要求1所述的基于代理的HTTP报文采集方法,其特征在于:当HTTP报文代理模块与爬取目标服务器之间的连接中断时,发送与爬取目标服务器网络中断的信息至爬虫模块后,断开与爬虫模块之间的HTTP连接。

6.一种基于代理的HTTP报文采集终端设备,其特征在于:包括处理器、存储器以及存储在所述存储器中并在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求1~5中任一所述方法的步骤。

7.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现如权利要求1~5中任一所述方法的步骤。

说明书 :

一种基于代理的HTTP报文采集方法、终端设备及存储介质

技术领域

[0001] 本发明涉及互联网技术领域,尤其涉及一种基于代理的HTTP报文采集方法、终端设备及存储介质。

背景技术

[0002] 爬虫技术自诞生以来便广泛地被用于互联网信息的采集中,互联网的一些热门站点公开发布了大量开源数据,并允许爬虫有限度地访问。
[0003] 传统爬虫在下载HTTP响应报文后通过正则或Xpath等规则库对响应体进行分析,只关注符合采集规则的内容,抛弃了不合规则的内容,当规则错误或需求变更时便需要对曾经采集过的网页进行重采,这种操作会加重被采集站点服务器的负担,当访问被采集内容需要消耗网络虚拟财产时,也会造成采集方的网络虚拟财产损失。当被采集网页的内容没有变化或采集需求事实上不关注变化的内容时,这种重采是不必要的。

发明内容

[0004] 为了解决上述问题,本发明提出了一种基于代理的HTTP报文采集方法、终端设备及存储介质。
[0005] 具体方案如下:
[0006] 一种基于代理的HTTP报文采集方法,包括以下步骤:
[0007] S1:构建HTTP报文代理模块,通过HTTP报文代理模块接收爬虫模块发送的HTTP请求报文;
[0008] S2:HTTP报文代理模块接收到HTTP请求报文后,判断HTTP报文库是否存在与接收的HTTP请求报文相同的HTTP请求报文,如果是,进入S4;否则,进入S3;
[0009] S3:将HTTP请求报文转发至对应的爬取目标服务器,并接收来自爬取目标服务器的HTTP响应报文,将HTTP响应报文转发至爬虫模块,同时将HTTP请求报文和HTTP响应报文存入HTTP报文库内,并记录两者之间的关联关系;
[0010] S4:从HTTP报文库获取HTTP请求报文关联的HTTP响应报文,并将其转发至爬虫模块。
[0011] 进一步的,当传输采用HTTPS协议时,爬虫模块发送的HTTP请求报文采用第一TLS证书进行加密;HTTP报文代理模块转发HTTP请求报文时,首先通过第一TLS证书进行解密后,再通过第二TLS证书进行加密,将加密后的HTTP请求报文转发至爬取目标服务器。
[0012] 进一步的,当传输采用HTTPS协议时,第一TLS证书通过HTTP报文代理模块对应的TLS证书签发机构,第二TLS证书通过爬虫目标服务器对应的TLS证书签发机构提供。
[0013] 进一步的,HTTP报文代理模块接收到HTTP请求报文后,先将其解析为HTTP协议标准格式后,暂存于内存中;当HTTP报文代理模块接收到来自爬取目标服务器的HTTP响应报文后,先将HTTP响应报文解析为HTTP协议标准格式后,再与内存中暂存的HTTP请求报文共同存储至HTTP报文库内。
[0014] 进一步的,如果一个HTTP请求报文从爬取目标服务器中获取了多个HTTP响应报文时,在HTTP报文库内存储多个HTTP响应报文的先后顺序。
[0015] 进一步的,还包括针对存储于HTTP报文库内的所有报文进行数据挖掘和分析处理,得到不同报文之间的关联关系,将与待转发的HTTP响应报文具有关联关系的其他HTTP响应报文共同发送至爬虫模块。
[0016] 进一步的,当HTTP报文代理模块与爬取目标服务器之间的连接中断时,发送与爬取目标服务器网络中断的信息至爬虫模块后,断开与爬虫模块之间的HTTP连接。
[0017] 一种基于代理的HTTP报文采集终端设备,包括处理器、存储器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现本发明实施例上述的方法的步骤。
[0018] 一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现本发明实施例上述的方法的步骤。
[0019] 本发明采用如上技术方案,将爬取过的HTTP响应报文存储于HTTP报文库内,从而避免了爬虫模块对不是由爬取目标服务器的内容更新而进行的重新采集,减轻了爬取目标服务器的负担,也避免了可能造成的网络虚拟财产损失。

附图说明

[0020] 图1所示为本发明实施例一的流程图。

具体实施方式

[0021] 为进一步说明各实施例,本发明提供有附图。这些附图为本发明揭露内容的一部分,其主要用以说明实施例,并可配合说明书的相关描述来解释实施例的运作原理。配合参考这些内容,本领域普通技术人员应能理解其他可能的实施方式以及本发明的优点。
[0022] 现结合附图和具体实施方式对本发明进一步说明。
[0023] 实施例一:
[0024] 本发明实施例提供了一种基于代理的HTTP报文采集方法,如图1所示,所述方法包括以下步骤:
[0025] S1:构建HTTP报文代理模块,通过HTTP报文代理模块接收爬虫模块发送的HTTP请求报文。
[0026] HTTP报文代理模块对于可配置代理的爬虫模块提供HTTP、HTTPS或SOCKS等协议的代理服务,对于不支持配置代理的爬虫模块则可对系统进行全局代理。
[0027] S2:HTTP报文代理模块接收到HTTP请求报文后,判断HTTP报文库是否存在与接收的HTTP请求报文相同的HTTP请求报文,如果是,进入S4;否则,进入S3。
[0028] 当HTTP请求报文采用HTTPS协议进行传输时,爬虫模块发送HTTP请求报文时采用HTTP报文代理模块对应的TLS证书签发机构为HTTP请求报文提供TLS协议加密服务,生成第一TLS证书。普通HTTP协议没有加密过程。
[0029] 判断HTTP报文库是否存在与接收的HTTP请求报文相同的HTTP请求报文的方法为:将接收到的HTTP请求报文解析为HTTP协议标准格式后与HTTP报文库内的HTTP请求报文进行匹配,具体匹配规则本领域技术人员可以根据实际应用进行设定,在此不做限制。需要说明的是,请求头与请求体可对一些特殊站点采取较为宽松的匹配规则,忽略不影响最终响应内容的差别。
[0030] S3:将HTTP请求报文转发至对应的爬取目标服务器,并接收来自爬取目标服务器的HTTP响应报文,将HTTP响应报文转发至爬虫模块,同时将HTTP请求报文和HTTP响应报文存入HTTP报文库内,并记录两者之间的关联关系。
[0031] 当HTTP请求报文采用HTTPS协议进行传输时,HTTP报文代理模块首先采用第一TLS证书对接收到的HTTP请求报文进行解密后,再通过爬虫目标服务器对应的TLS证书签发机构提供的第二TLS证书对HTTP请求报文进行加密,将加密后的HTTP请求报文转发至对应的爬取目标服务器。
[0032] HTTP报文代理模块接收到HTTP请求报文后,先将其解析为HTTP协议标准格式后,暂存于内存中。当HTTP报文代理模块接收到来自爬取目标服务器的HTTP响应报文后,先将HTTP响应报文解析为HTTP协议标准格式后,再与内存中暂存的HTTP请求报文共同存储至HTTP报文库内。
[0033] 进一步的,如果HTTP响应报文使用了HTTPS协议进行传输,首先对其使用第二TLS证书进行解密后,再将其解析为HTTP协议标准格式。
[0034] 进一步的,如果一个HTTP请求报文从爬取目标服务器中获取了多个HTTP响应报文时,在HTTP报文库内存储多个HTTP响应报文的先后顺序。
[0035] 进一步的,还可以针对存储于HTTP报文库内的所有报文进行数据挖掘和分析处理,得到不同报文之间的关联关系,将与待转发的HTTP响应报文具有关联关系的其他HTTP响应报文共同发送至爬虫模块。
[0036] 当HTTP报文代理模块与爬取目标服务器之间的连接中断时,无法获取对应的HTTP响应报文,因此发送与爬取目标服务器网络中断的信息至爬虫模块后,断开与爬虫模块之间的HTTP连接。
[0037] S4:从HTTP报文库获取HTTP请求报文关联的HTTP响应报文,并将其转发至爬虫模块。
[0038] 在将HTTP响应报文转发至爬虫模块时,仍需通过第一TLS证书进行加密。
[0039] 本发明实施例一在应用层代理爬虫模块收发的HTTP报文,将爬取过的HTTP响应报文存储于HTTP报文库内,从而避免了爬虫模块对不是由爬取目标服务器的内容更新而进行的重新采集(该种情况并不需要实际访问爬取目标服务器),减轻了爬取目标服务器的负担,也避免了可能造成的网络虚拟财产损失。
[0040] 采用了本实施例中的方法,爬虫模块本身可以继续使用传统的逻辑进行数据采集,也可以不再关注采集需求所要求的数据,只关注继续推进爬虫采集业务所需要的如URL、令牌、验证码等数据。采集需求所要求的数据则可交由数据挖掘模块直接对HTTP报文库内保存的HTTP报文进行分析和数据挖掘而获取。
[0041] 实施例二:
[0042] 本发明还提供一种基于代理的HTTP报文采集终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现本发明实施例一的上述方法实施例中的步骤。
[0043] 进一步地,作为一个可执行方案,所述基于代理的HTTP报文采集终端设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述基于代理的HTTP报文采集终端设备可包括,但不仅限于,处理器、存储器。本领域技术人员可以理解,上述基于代理的HTTP报文采集终端设备的组成结构仅仅是基于代理的HTTP报文采集终端设备的示例,并不构成对基于代理的HTTP报文采集终端设备的限定,可以包括比上述更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述基于代理的HTTP报文采集终端设备还可以包括输入输出设备、网络接入设备、总线等,本发明实施例对此不做限定。
[0044] 进一步地,作为一个可执行方案,所称处理器可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field‑Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述基于代理的HTTP报文采集终端设备的控制中心,利用各种接口和线路连接整个基于代理的HTTP报文采集终端设备的各个部分。
[0045] 所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述基于代理的HTTP报文采集终端设备的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据手机的使用所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
[0046] 本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现本发明实施例上述方法的步骤。
[0047] 所述基于代理的HTTP报文采集终端设备集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read‑Only Memory)、随机存取存储器(RAM,Random Access Memory)以及软件分发介质等。
[0048] 尽管结合优选实施方案具体展示和介绍了本发明,但所属领域的技术人员应该明白,在不脱离所附权利要求书所限定的本发明的精神和范围内,在形式上和细节上可以对本发明做出各种变化,均为本发明的保护范围。