CN111737629B - 一种数据探测方法及装置 - Google Patents

一种数据探测方法及装置 Download PDF

Info

Publication number
CN111737629B
CN111737629B CN202010627728.2A CN202010627728A CN111737629B CN 111737629 B CN111737629 B CN 111737629B CN 202010627728 A CN202010627728 A CN 202010627728A CN 111737629 B CN111737629 B CN 111737629B
Authority
CN
China
Prior art keywords
client
node
crawler
url address
login
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
Application number
CN202010627728.2A
Other languages
English (en)
Other versions
CN111737629A (zh
Inventor
田启航
王滨
万里
毕志城
周少鹏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Hikvision Digital Technology Co Ltd
Original Assignee
Hangzhou Hikvision Digital Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hangzhou Hikvision Digital Technology Co Ltd filed Critical Hangzhou Hikvision Digital Technology Co Ltd
Priority to CN202010627728.2A priority Critical patent/CN111737629B/zh
Publication of CN111737629A publication Critical patent/CN111737629A/zh
Application granted granted Critical
Publication of CN111737629B publication Critical patent/CN111737629B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/955Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
    • G06F16/9566URL specific, e.g. using aliases, detecting broken or misspelled links

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)

Abstract

本申请提供一种数据探测方法及装置,所述方法应用于爬虫系统,所述爬虫系统包括爬虫节点、代理节点,所述方法包括:所述代理节点在检测到数据探测任务时,建立所述代理节点与客户端的代理关系;在通过所述爬虫节点执行所述数据探测任务时,触发所述客户端通过所述代理节点向被测系统发送请求信息,其中,所述被测系统响应所述请求信息产生交互数据;所述代理节点捕获所述客户端的请求信息和所述被测系统的交互数据。应用该方法,可以实现对被测系统进行全面探测。

Description

一种数据探测方法及装置
技术领域
本申请涉及互联网技术领域,尤其涉及一种数据探测方法及装置。
背景技术
目前,可以通过浏览器与网站进行交互获取网站的数据,这里,网站的数据可以是网站提供的静态网页、采用后端渲染方式渲染而成的网页,或者针对浏览器发送的AJAX请求而返回的AJAX响应数据,其中,当浏览器获取到网站的AJAX响应数据后,采用前端渲染方式对获取到的数据进行渲染而生成网页。进而,通过爬虫以获取网页内容的方式实现对网站的探测。
可见,传统的爬虫探测到的仅仅是网页内容,并无法探测到浏览器与网站交互过程中的原始交互数据,比如浏览器向网站发送的AJAX请求、网站向浏览器返回的AJAX响应数据等,这就导致应用目前的数据探测方法无法对被测系统进行全面探测。
发明内容
有鉴于此,本申请提供一种数据探测方法及装置,以解决应用目前的数据探测方法无法对被测系统进行全面探测的问题。
根据本申请实施例的第一方面,提供一种数据探测方法,应用于爬虫系统,所述爬虫系统包括爬虫节点、代理节点,所述数据探测方法包括:
所述代理节点在检测到数据探测任务时,建立所述代理节点与客户端的代理关系;
在通过所述爬虫节点执行所述数据探测任务时,触发所述客户端通过所述代理节点向被测系统发送请求信息,其中,所述被测系统响应所述请求信息产生交互数据;
所述代理节点捕获所述客户端的请求信息和所述被测系统的交互数据。
可选的,所述爬虫节点执行所述数据探测任务,包括:
所述爬虫节点从所述数据探测任务的任务信息中获取被测系统的根URL地址;
所述爬虫节点触发所述客户端通过所述代理节点基于所述根URL地址向被测系统发送请求信息,其中,所述请求信息用于请求获取所述被测系统的页面资源,所述被测系统响应所述请求信息向所述客户端返回页面资源。
可选的,所述爬虫节点触发所述客户端通过所述代理节点基于所述根URL地址向被测系统发送请求信息,包括:
所述爬虫节点将所述根URL地址作为当前URL地址,触发所述客户端通过所述代理节点向所述被测系统发送针对当前URL地址的访问请求,其中,所述被测系统响应所述针对当前URL地址的访问请求向客户端返回所述当前URL地址的页面资源;
所述爬虫节点爬取所述页面资源中包含的URL地址;
所述爬虫节点检查爬取的URL地址中是否存在未被访问过的URL地址;如果是,则选择任意一个未被访问过的URL地址作为当前URL地址,返回执行所述触发所述客户端通过所述代理节点向被测系统发送针对当前URL地址的访问请求,直至爬取的URL地址中不存在未被访问过的URL地址。
可选的,所述方法还包括:
所述爬虫节点爬取所述页面资源中包含的表单元素;
所述爬虫节点基于爬取的表单元素触发所述客户端通过所述代理节点向所述被测系统发送AJAX请求报文,其中,所述被测系统响应所述AJAX请求报文向所述客户端返回AJAX响应报文。
可选的,在所述爬虫节点从所述数据探测任务的任务信息中获取被测系统的根URL地址之前,所述方法还包括:
所述爬虫节点检查所述数据探测任务的任务信息中是否存在登录信息,所述登录信息包括用户信息和所述被测系统的登录页URL地址;
如果是,则触发所述客户端通过所述代理节点向所述被测系统发送针对所述登录页URL地址的访问请求,其中,所述被测系统响应所述针对登录页URL地址的访问请求向所述客户端返回登录页面;
所述爬虫节点基于所述登录页面触发所述客户端通过所述代理节点向所述被测系统发送携带所述用户信息的登录请求,其中,所述被测系统响应所述登录请求向所述客户端返回登录响应消息。
可选的,所述爬虫节点基于所述登录页面,触发所述客户端通过所述代理节点向所述被测系统发送携带所述用户信息的登录请求,包括:
所述爬虫节点基于所述登录页面确定所述被测系统所采用的登录认证方式;
所述爬虫节点确定与所述被测系统所采用的登录认证方式匹配的目标登录方式;
所述爬虫节点基于所述目标登录方式在所述登录页面上输入所述用户信息,并触发所述客户端通过所述代理节点向所述被测系统发送携带所述用户信息的登录请求。
根据本申请实施例的第二方面,提供一种爬虫系统,所述爬虫系统包括爬虫节点、代理节点;其中:
所述代理节点,用于在检测到数据探测任务时,建立所述代理节点与客户端的代理关系;
所述爬虫节点,用于执行所述数据探测任务,并在执行所述数据探测任务时触发所述客户端通过所述代理节点向被测系统发送请求信息,其中,所述被测系统响应所述请求信息产生交互数据;
所述代理节点,还用于捕获所述客户端的请求信息和所述被测系统的交互数据。
可选的,所述爬虫节点执行所述数据探测任务,包括:
所述爬虫节点从所述数据探测任务的任务信息中获取被测系统的根URL地址;
所述爬虫节点触发所述客户端通过所述代理节点基于所述根URL地址向被测系统发送所述请求信息,其中,所述请求信息用于请求获取所述被测系统的页面资源,所述被测系统响应所述请求信息向所述客户端返回页面资源。
可选的,所述爬虫节点触发所述客户端通过所述代理节点基于所述根URL地址向被测系统发送请求信息,包括:
所述爬虫节点将所述根URL地址作为当前URL地址,触发所述客户端通过所述代理节点向所述被测系统发送针对当前URL地址的访问请求,其中,所述被测系统响应所述针对当前URL地址的访问请求向客户端返回所述当前URL地址的页面资源;
所述爬虫节点爬取所述页面资源中包含的URL地址;
所述爬虫节点检查爬取的URL地址中是否存在未被访问过的URL地址;如果是,则选择任意一个未被访问过的URL地址作为当前URL地址,返回执行所述触发所述客户端通过所述代理节点向被测系统发送针对当前URL地址的访问请求,直至爬取的URL地址中不存在未被访问过的URL地址。
可选的,所述爬虫节点,还用于爬取所述页面资源中包含的表单元素;基于爬取的表单元素触发所述客户端通过所述代理节点向所述被测系统发送AJAX请求报文,其中,所述被测系统响应所述AJAX请求报文向所述客户端返回AJAX响应报文。
可选的,所述爬虫节点,还用于检查所述数据探测任务的任务信息中是否存在登录信息,所述登录信息包括用户信息和所述被测系统的登录页URL地址;如果是,则触发所述客户端通过所述代理节点向所述被测系统发送针对所述登录页URL地址的访问请求,其中,所述被测系统响应所述针对登录页URL地址的访问请求向所述客户端返回登录页面;基于所述登录页面触发所述客户端通过所述代理节点向所述被测系统发送携带所述用户信息的登录请求,其中,所述被测系统响应所述登录请求向所述客户端返回登录响应消息。
可选的,所述爬虫节点基于所述登录页面,触发所述客户端通过所述代理节点向所述被测系统发送携带所述用户信息的登录请求,包括:
所述爬虫节点基于所述登录页面确定所述被测系统所采用的登录认证方式;
所述爬虫节点确定与所述被测系统所采用的登录认证方式匹配的目标登录方式;
所述爬虫节点基于所述目标登录方式在所述登录页面上输入所述用户信息,并触发所述客户端通过所述代理节点向所述被测系统发送携带所述用户信息的登录请求。
应用本申请实施例,通过在检测到数据探测任务时,建立代理节点与客户端的代理关系,之后在通过爬虫节点执行数据探测任务时,则可以触发客户端通过代理节点向被测系统发送请求信息,并使得客户端通过代理节点接收被测系统响应请求信息而产生的交互数据,由此则能够实现代理节点捕获客户端的请求信息和被测系统的交互数据。
进一步,对于采用前端渲染方式的被测系统而言,爬虫系统在通过爬虫节点执行数据探测任务时,不仅能够通过爬虫节点爬取到浏览器基于被测系统返回的交互数据渲染而成的网页内容,还能够通过代理节点捕获到被测系统返回的原始的交互数据,这则丰富了爬虫系统能够探测到的数据,进而实现对被测系统进行更为全面的探测。
附图说明
图1为本申请一示例性实施例提供的一种数据探测方法的实施例流程图;
图2为为本申请一示例性实施例提供的一种爬虫节点执行数据探测任务的实现流程;
图3为本申请一示例性提供一种自动登录被测系统的实施例流程;
图4为本申请一示例性实施例提供的一种步骤303的实现流程;
图5为本申请一示例性实施例提供的一种爬虫系统的实施例框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。
为了使本领域技术人员更好地理解本申请实施例提供的技术方案,并使本申请实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对本申请实施例中技术方案作进一步详细的说明。
参见图1,为本申请一示例性实施例提供的一种数据探测方法的实施例流程图。作为一个示例,该方法可应用于爬虫系统,需要说明的是,不同于传统的爬虫系统,这里的爬虫系统包括爬虫节点和代理节点,可选的,爬虫节点可通过Selenium测试工具、Pyppeteer工具等实现;代理节点可通过HTTP代理、HTTPS代理、FTP代理、SOCKS5代理等实现。如图1所示,该流程包括以下步骤:
步骤101:代理节点在检测到数据探测任务时,建立代理节点与客户端的代理关系。
在应用中,用户可以通过程序或人机交互方式向爬虫系统下发数据探测任务。以通过人机交互方式向爬虫系统下发数据探测任务为例,爬虫系统可向用户提供一个探测任务配置界面,以实现用户通过该界面输入数据探测任务的任务信息,比如被测系统的根URL地址、登录页URL地址、用户信息(用户名、登录密码等)、自定义的探测路径、排除探测路径(用于指示禁止进行数据探测的URL地址的访问路径)等,本申请对此并不做具体限定。进一步,爬虫系统还可向用户提供一个用于指示执行数据探测任务的操作框,一旦检测到该操作框被触发,则意味着爬虫系统检测到数据探测任务。
在一实施例中,爬虫系统检测到数据探测任务后,可将数据探测任务的任务信息写入本系统的消息队列中。代理节点则可主动从消息队列中获取最新的任务信息。一旦代理节点获取到任务信息,则意味着代理节点检测到数据探测任务。
代理节点在检测到数据探测任务时,则建立代理节点与客户端的代理关系。这里的客户端是指浏览器,包括但不限于PhantomJS、Firefox、Chrome、IE浏Chromium浏览器等。这里的代理关系是指,在使用客户端去连接其他网络站点取得网络信息时,客户端并不是直接到其他网络站点取得网络信息,而是向代理节点发出请求,由代理节点来向其他网络站点取回客户端所需要的信息并传送给客户端。
在一实施例中,代理节点在检测到数据探测任务时,可以通过以下方式建立代理节点与客户端的代理关系:代理节点首先开启指定端口的代理服务,然后将浏览器设置为启用代理服务,并将该指定端口和代理服务的IP地址设置给浏览器。这就实现了建立代理节点与客户端的代理关系。
步骤102:在通过爬虫节点执行数据探测任务时,触发客户端通过代理节点向被测系统发送请求信息,其中,被测系统响应请求信息产生交互数据。
在一实施例中,代理节点在建立和客户端的代理关系之后,可向爬虫节点发送探测通知。爬虫节点在接收到探测通知时,从上述消息队列中获取任务信息,以执行数据探测任务。
可以理解的是,在通过爬虫节点执行数据探测任务时,爬虫节点将触发客户端向被测系统发送请求信息,被测系统接收到请求信息后,将响应于该请求信息产生交互数据并返回给客户端。至于爬虫节点是如何执行数据探测任务的,在下文中通过图2所示实施例进行描述,这里先不详述。
需要说明的是,在本申请实施例中,由于在步骤101已建立代理节点和客户端的代理关系,基于此,在本步骤102中,通过爬虫节点执行数据探测任务时,将触发客户端通过代理节点向被测系统发送请求信息,即,客户端在爬虫节点的触发下,先将请求信息发送给代理节点,然后由代理节点将该请求信息转发给被测系统。相应的,被测系统也先将产生的交互数据发送给代理节点,然后由代理节点将该交互数据转发给客户端。
步骤103:代理节点捕获客户端的请求信息和被测系统的交互数据。
由上述描述可知,代理节点相当于客户端和被测系统之间的“信息中转站”,同时,目前的代理节点都具有很大的存储空间,能够将取得的信息储存到对应的存储空间中,基于此,在本步骤103中,代理节点能够捕获客户端的请求信息和被测系统的交互数据。
由上述实施例可见,通过在检测到数据探测任务时,建立代理节点与客户端的代理关系,之后在通过爬虫节点执行数据探测任务时,则可以触发客户端通过代理节点向被测系统发送请求信息,并使得客户端通过代理节点接收被测系统响应请求信息而产生的交互数据,由此则能够实现代理节点捕获客户端的请求信息和被测系统的交互数据。
进一步,对于采用前端渲染方式的被测系统而言,爬虫系统在通过爬虫节点执行数据探测任务时,不仅能够通过爬虫节点爬取到浏览器基于被测系统返回的交互数据渲染而成的网页内容,还能够通过代理节点捕获到被测系统返回的原始的交互数据,这则丰富了爬虫系统能够探测到的数据,进而实现对被测系统进行更为全面的探测。
以上通过图1所示流程从整体上对本申请提供的数据探测方法进行了说明,下面则通过图2所示流程描述爬虫节点是如何执行数据探测任务的:
请参见图2,为本申请一示例性实施例提供的一种爬虫节点执行数据探测任务的实现流程,包括以下步骤:
步骤201:爬虫节点从数据探测任务的任务信息中获取被测系统的根URL地址,并将根URL地址作为当前URL地址。
步骤202:爬虫节点触发客户端通过代理节点向被测系统发送针对当前URL地址的访问请求,其中,被测系统响应针对当前URL地址的访问请求向客户端返回当前URL地址的页面资源。
步骤203:爬虫节点爬取页面资源中包含的URL地址。
步骤204:爬虫节点检查爬取的URL地址中是否存在未被访问过的URL地址,如果是,则执行步骤205;如果否,则结束流程。
步骤205:选择任意一个未被访问过的URL地址作为当前URL地址,返回执行步骤202。
以下对步骤201至步骤205进行统一说明:
在本申请实施例中,爬虫节点执行数据探测任务时,首先从数据探测任务的任务信息中获取到被测系统的根URL地址,然后通过代理节点基于被测系统的根URL地址向被测系统发送用于请求获取被测系统页面资源的请求信息。可以理解的是,被测系统响应该请求信息向被测系统返回页面资源。
作为一个实施例,爬虫节点可以不断地从已获取的页面资源中爬取新的URL地址并访问,直至获取不到新的URL地址,这能够实现对被测系统进行全面的探测。
具体的,爬虫节点首先将根URL地址作为当前URL地址,触发客户端通过代理节点向被测系统发送针对当前URL地址的访问请求,可以理解的是,被测系统响应该针对当前URL地址的访问请求,向客户端返回当前URL地址的页面资源。然后,爬虫节点爬取被测系统当前返回的页面资源中包含的URL地址。
进一步,爬虫节点检查爬取到的URL地址中是否存在未被访问过的URL地址,如果是,则选择任意一个未被访问过的URL地址作为当前URL地址,返回执行步骤302触发客户端通过代理节点向被测系统发送针对当前URL地址的访问请求,直至爬取的URL地址中不存在未被访问过的URL地址。
可选的,爬虫节点可以通过多种方式爬取页面资源中包含的URL地址,比如通过爬取页面资源中各页面元素的href属性爬取URL地址。
至此,完成图2所示流程的相关描述,
通过图2所示流程,可以实现通过爬虫节点全面探测被测系统的各个页面资源。
此外,在HTML中,浏览器使用AJAX与被测系统的后端接口进行交互,比如在前端渲染的网站中,浏览器通过JS向网站的后端接口发送AJAX请求以得到网站的后端接口返回的JSON/XML等格式的动态数据,然后对得到的动态数据进行JS解析后更新页面。
然而,传统的爬虫系统仅能够爬取到浏览器渲染出的页面内容,并不能够爬取到网站的后端接口返回的原始的动态数据。为了解决这一问题,本申请提供以下实施例:
爬虫节点爬取被测系统返回的页面资源中包含的表单元素,这里所说的表单元素包括但不限于<input>元素、<output>元素、<select>元素、<option>元素、<textarea> 元素等,之后,按照设定规则在爬取到的表单元素中输入内容,并自动触发表单提交,以触发客户端通过代理节点向被测系统发送AJAX请求报文。可以理解的是,被测系统响应AJAX请求报文向客户端返回AJAX响应报文。在一个例子中,AJAX响应报文包含上述JSON/XML等格式的动态数据。
由此可见,通过该实施例,可以实现通过爬虫节点自动触发客户端与被测系统进行UI交互,实现触发客户端向被测系统发送各种方法的AJAX请求,包括但不限于GET方法、POST方法、PUT方法、DELETE方法等,从而全面地探测被测系统的后端接口,同时,这些探测流量,即浏览器和被测系统之间的交互报文能够被代理节点捕获,从而有利于发现被测系统上更多的漏洞。
此外,在应用中,有些网站需要登录后才可以访问,据此,为实现本申请实施例提供的数据探测方法,本申请还提供一套自动登录被测系统的流程,以下则通过图3所示实施例描述如何实现自动登录被测系统:
请参见图3,为本申请一示例性提供一种自动登录被测系统的实施例流程,包括以下步骤:
步骤301:爬虫节点检查数据探测任务的任务信息中是否存在登录信息,登录信息包括用户信息和被测系统的登录页URL地址。
可以理解的是,对于需要登录后才可访问的网站而言,可以在设置被测系统的相关信息时,设置登录信息,包括登录页URL地址和用户信息,而对于无需登录即可访问的网站而言,则不存在登录页URL地址和用户信息。
据此,在本步骤301中,则可以通过检查数据探测任务的任务信息中是否存在登录信息来确定是否需要登录被测系统。
步骤302:如果是,则触发客户端通过代理节点向被测系统发送针对登录页URL地址的访问请求,其中,被测系统响应针对登录页URL地址的访问请求向客户端返回登录页面。
爬虫节点在确定需要登录被测系统时,可触发客户端向被测系统发送针对登录页URL地址的访问请求,其中,被测系统响应针对登录页URL地址的访问请求向客户端返回登录页面。
需要说明的是,在上述描述中,客户端通过代理节点向被测系统发送针对登录页URL地址的访问请求,并且,客户端也是通过代理节点接收被测系统返回的登录页面。由此,代理节点可以捕获客户端针对登录页URL地址的访问请求和被测系统的登录页面。
步骤303:爬虫节点基于登录页面触发客户端通过代理节点向被测系统发送携带用户信息的登录请求,其中,被测系统响应登录请求向客户端返回登录响应消息。
在本步骤303中,爬虫节点则可以基于登录页面触发客户端向被测系统发送携带用户信息的登录请求,其中,被测系统响应登录请求向客户端返回登录响应消息。可选的,在登录失败时,该登录响应消息可以为用于指示登录失败的提示消息;在登录成功时,该登录响应消息则为用于指示登录成功的提示消息或者登录响应消息携带被测系统的首页。
需要说明的是,在上述描述中,客户端通过代理节点向被测系统发送登录请求,并且,客户端也是通过代理节点接收被测系统返回的登录响应消息。由此,代理节点可以捕获客户端的登录请求和被测系统的登录响应消息。
至于是爬虫节点是如何基于登录页面触发客户端通过代理节点向被测系统发送携带用户信息的登录请求的,在下文中通过图4所示实施例进行描述,这里先不详述。
至此,完成图3所示流程的相关描述。
通过图3所示实施例,可以实现自动登录被测系统,以为后续的数据探测提供条件。
以下则通过图4所示实施例描述爬虫节点如何基于登录页面向被测系统发送登录请求:
参见图4,为本申请一示例性实施例提供的一种步骤303的实现流程,包括以下步骤:
步骤401:爬虫节点基于登录页面确定被测系统所采用的登录认证方式。
可选的,这里的登录认证方式包括但不限于:HTTP Basic认证、HTTP Digest认证、网页认证等。
步骤402:爬虫节点确定与被测系统所采用的登录认证方式匹配的登录方式。
步骤403:爬虫节点基于匹配的登录方式在登录页面上输入用户信息,并触发客户端通过代理节点向被测系统发送登录请求。
在一个例子中,当被测系统采用的登录认证方式为HTTP Basic认证时,爬虫节点可以在客户端弹出的窗口中输入用户信息。
在另一个例子中,当被测系统采用的登录认证方式为网页认证时,爬虫节点首先在登录页面上确定用户信息输入框,即可以输入用户名和用户密码的输入框,然后,将用户信息输入至用户信息输入框中,最后则可以自动触发表单提交,以实现触发客户端通过代理节点向被测系统发送携带用户信息的登录请求。
在一实施例中,爬虫节点可以通过以下方式在登录页面上确定用户信息输入框:获取登录页面的页面标识,以页面标识为关键字查找预配置的登录逻辑信息,若查找到包含关键字的登录逻辑信息,则依据查找到的登录逻辑信息在登录页面上确定用户信息输入框;若未查找到包含关键字的登录逻辑信息,则将登录页面上指定位置处的输入框确定为用户信息输入框,例如将登录页面上的首个输入框确定为用户名输入框,将位于该首个输入框下一行中的首个输入框确定为用户密码输入框。这里的“首个”是按照从上到下,从左到右的顺序而言。
至此,完成图4所示流程的相关描述。
通过图4所示流程,实现了爬虫节点触发客户端通过代理节点自动登录被测系统。
此外,在一实施例中,爬虫节点执行完数据探测任务之后,可以广播发送该数据探测任务的任务ID,以使代理节点基于该任务ID关闭代理服务,以断开代理节点和客户端之间的代理关系。
与前述数据探测方法的实施例相对应,本申请还提供了爬虫系统的实施例。
请参见图5,为本申请一示例性实施例提供的一种爬虫系统的实施例框图,该爬虫系统包括:爬虫节点和代理节点。
其中,所述代理节点,用于在检测到数据探测任务时,建立所述代理节点与客户端的代理关系;
所述爬虫节点,用于执行所述数据探测任务,并在执行所述数据探测任务时触发所述客户端通过所述代理节点向被测系统发送请求信息,其中,所述被测系统响应所述请求信息产生交互数据;
所述代理节点,还用于捕获所述客户端的请求信息和所述被测系统的交互数据。
可选的,所述爬虫节点执行所述数据探测任务,包括:
所述爬虫节点从所述数据探测任务的任务信息中获取被测系统的根URL地址;
所述爬虫节点触发所述客户端通过所述代理节点基于所述根URL地址向被测系统发送所述请求信息,其中,所述请求信息用于请求获取所述被测系统的页面资源,所述被测系统响应所述请求信息向所述客户端返回页面资源。
可选的,所述爬虫节点触发所述客户端通过所述代理节点基于所述根URL地址向被测系统发送请求信息,包括:
所述爬虫节点将所述根URL地址作为当前URL地址,触发所述客户端通过所述代理节点向所述被测系统发送针对当前URL地址的访问请求,其中,所述被测系统响应所述针对当前URL地址的访问请求向客户端返回所述当前URL地址的页面资源;
所述爬虫节点爬取所述页面资源中包含的URL地址;
所述爬虫节点检查爬取的URL地址中是否存在未被访问过的URL地址;如果是,则选择任意一个未被访问过的URL地址作为当前URL地址,返回执行所述触发所述客户端通过所述代理节点向被测系统发送针对当前URL地址的访问请求,直至爬取的URL地址中不存在未被访问过的URL地址。
可选的,所述爬虫节点,还用于爬取所述页面资源中包含的表单元素;基于爬取的表单元素触发所述客户端通过所述代理节点向所述被测系统发送AJAX请求报文,其中,所述被测系统响应所述AJAX请求报文向所述客户端返回AJAX响应报文。
可选的,所述爬虫节点,还用于检查所述数据探测任务的任务信息中是否存在登录信息,所述登录信息包括用户信息和所述被测系统的登录页URL地址;如果是,则触发所述客户端通过所述代理节点向所述被测系统发送针对所述登录页URL地址的访问请求,其中,所述被测系统响应所述针对登录页URL地址的访问请求向所述客户端返回登录页面;基于所述登录页面触发所述客户端通过所述代理节点向所述被测系统发送携带所述用户信息的登录请求,其中,所述被测系统响应所述登录请求向所述客户端返回登录响应消息。
可选的,所述爬虫节点基于所述登录页面,触发所述客户端通过所述代理节点向所述被测系统发送携带所述用户信息的登录请求,包括:
所述爬虫节点基于所述登录页面确定所述被测系统所采用的登录认证方式;
所述爬虫节点确定与所述被测系统所采用的登录认证方式匹配的目标登录方式;
所述爬虫节点基于所述目标登录方式在所述登录页面上输入所述用户信息,并触发所述客户端通过所述代理节点向所述被测系统发送携带所述用户信息的登录请求。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

Claims (8)

1.一种数据探测方法,其特征在于,应用于爬虫系统,所述爬虫系统包括爬虫节点、代理节点,所述数据探测方法包括:
所述代理节点在检测到数据探测任务时,建立所述代理节点与客户端的代理关系;
在通过所述爬虫节点从所述数据探测任务的任务信息中获取被测系统的根URL地址的情况下,由所述爬虫节点触发所述客户端通过所述代理节点并基于所述根URL地址向被测系统发送请求信息,其中,所述请求信息用于请求获取所述被测系统的页面资源,所述被测系统响应所述请求信息向所述客户端返回页面资源;
所述代理节点捕获所述客户端的请求信息和所述被测系统的页面资源。
2.根据权利要求1所述的方法,其特征在于,所述爬虫节点触发所述客户端通过所述代理节点基于所述根URL地址向被测系统发送请求信息,包括:
所述爬虫节点将所述根URL地址作为当前URL地址,触发所述客户端通过所述代理节点向所述被测系统发送针对当前URL地址的访问请求,其中,所述被测系统响应所述针对当前URL地址的访问请求向客户端返回所述当前URL地址的页面资源;
所述爬虫节点爬取所述页面资源中包含的URL地址;
所述爬虫节点检查爬取的URL地址中是否存在未被访问过的URL地址;如果是,则选择任意一个未被访问过的URL地址作为当前URL地址,返回执行所述触发所述客户端通过所述代理节点向被测系统发送针对当前URL地址的访问请求,直至爬取的URL地址中不存在未被访问过的URL地址。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述爬虫节点爬取所述页面资源中包含的表单元素;
所述爬虫节点基于爬取的表单元素触发所述客户端通过所述代理节点向所述被测系统发送AJAX请求报文,其中,所述被测系统响应所述AJAX请求报文向所述客户端返回AJAX响应报文。
4.根据权利要求1所述的方法,其特征在于,在所述爬虫节点从所述数据探测任务的任务信息中获取被测系统的根URL地址之前,所述方法还包括:
所述爬虫节点检查所述数据探测任务的任务信息中是否存在登录信息,所述登录信息包括用户信息和所述被测系统的登录页URL地址;
如果是,则触发所述客户端通过所述代理节点向所述被测系统发送针对所述登录页URL地址的访问请求,其中,所述被测系统响应所述针对登录页URL地址的访问请求向所述客户端返回登录页面;
所述爬虫节点基于所述登录页面触发所述客户端通过所述代理节点向所述被测系统发送携带所述用户信息的登录请求,其中,所述被测系统响应所述登录请求向所述客户端返回登录响应消息。
5.根据权利要求4所述的方法,其特征在于,所述爬虫节点基于所述登录页面,触发所述客户端通过所述代理节点向所述被测系统发送携带所述用户信息的登录请求,包括:
所述爬虫节点基于所述登录页面确定所述被测系统所采用的登录认证方式;
所述爬虫节点确定与所述被测系统所采用的登录认证方式匹配的目标登录方式;
所述爬虫节点基于所述目标登录方式在所述登录页面上输入所述用户信息,并触发所述客户端通过所述代理节点向所述被测系统发送携带所述用户信息的登录请求。
6.一种爬虫系统,其特征在于,所述爬虫系统包括爬虫节点、代理节点;其中:
所述代理节点,用于在检测到数据探测任务时,建立所述代理节点与客户端的代理关系;
所述爬虫节点,用于从所述数据探测任务的任务信息中获取被测系统的根URL地址的情况下,由所述爬虫节点触发所述客户端通过所述代理节点并基于所述根URL地址向被测系统发送请求信息,其中,所述请求信息用于请求获取所述被测系统的页面资源,所述被测系统响应所述请求信息向所述客户端返回页面资源所述页面资源;
所述代理节点,还用于捕获所述客户端的请求信息和所述被测系统的页面资源。
7.根据权利要求6所述的系统,其特征在于,所述爬虫节点触发所述客户端通过所述代理节点基于所述根URL地址向被测系统发送请求信息,包括:
所述爬虫节点将所述根URL地址作为当前URL地址,触发所述客户端通过所述代理节点向所述被测系统发送针对当前URL地址的访问请求,其中,所述被测系统响应所述针对当前URL地址的访问请求向客户端返回所述当前URL地址的页面资源;
所述爬虫节点爬取所述页面资源中包含的URL地址;
所述爬虫节点检查爬取的URL地址中是否存在未被访问过的URL地址;如果是,则选择任意一个未被访问过的URL地址作为当前URL地址,返回执行所述触发所述客户端通过所述代理节点向被测系统发送针对当前URL地址的访问请求,直至爬取的URL地址中不存在未被访问过的URL地址。
8.根据权利要求6所述的系统,其特征在于,
所述爬虫节点,还用于爬取所述页面资源中包含的表单元素;基于爬取的表单元素触发所述客户端通过所述代理节点向所述被测系统发送AJAX请求报文,其中,所述被测系统响应所述AJAX请求报文向所述客户端返回AJAX响应报文。
CN202010627728.2A 2020-07-02 2020-07-02 一种数据探测方法及装置 Active CN111737629B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010627728.2A CN111737629B (zh) 2020-07-02 2020-07-02 一种数据探测方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010627728.2A CN111737629B (zh) 2020-07-02 2020-07-02 一种数据探测方法及装置

Publications (2)

Publication Number Publication Date
CN111737629A CN111737629A (zh) 2020-10-02
CN111737629B true CN111737629B (zh) 2020-12-29

Family

ID=72652505

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010627728.2A Active CN111737629B (zh) 2020-07-02 2020-07-02 一种数据探测方法及装置

Country Status (1)

Country Link
CN (1) CN111737629B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112953958B (zh) * 2021-03-09 2022-10-04 拉扎斯网络科技(上海)有限公司 一种爬虫检测方法、装置及电子设备

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8489609B1 (en) * 2006-08-08 2013-07-16 CastTV Inc. Indexing multimedia web content
US10430418B2 (en) * 2013-05-29 2019-10-01 Microsoft Technology Licensing, Llc Context-based actions from a source application
CN106649810B (zh) * 2016-12-29 2019-05-28 山东舜网传媒股份有限公司 基于Ajax的新闻网页动态数据的抓取方法及系统
CN109710831A (zh) * 2018-12-28 2019-05-03 四川新网银行股份有限公司 一种基于浏览器插件的网络爬虫系统

Also Published As

Publication number Publication date
CN111737629A (zh) 2020-10-02

Similar Documents

Publication Publication Date Title
CN110096659B (zh) 一种页面显示方法、装置、设备及可读存储介质
CN109688280B (zh) 请求处理方法、请求处理设备、浏览器及存储介质
CN106126693B (zh) 一种网页的相关数据的发送方法及装置
US20130191913A1 (en) Dynamically scanning a web application through use of web traffic information
CN113204730B (zh) 资源获取方法、webvpn代理服务器、系统及服务器
CN101964025A (zh) Xss检测方法和设备
CN111106983B (zh) 一种检测网络连通性的方法及装置
US9785710B2 (en) Automatic crawling of encoded dynamic URLs
CN109672658B (zh) Json劫持漏洞的检测方法、装置、设备及存储介质
CN103902534B (zh) 一种网页程序触发本地操作的方法和装置
CN105704171B (zh) 实现cdn访问的系统和方法
US20120166526A1 (en) Request forwarding and result aggregating systems, methods and computer readable media
CN104573520A (zh) 检测常驻式跨站脚本漏洞的方法和装置
CN105635064A (zh) Csrf攻击检测方法及装置
CN111177519A (zh) 网页内容获取方法、装置、存储介质及设备
CN105635073A (zh) 访问控制方法、装置和网络接入设备
CN113411333A (zh) 一种越权访问漏洞检测方法、装置、系统和存储介质
CN104834588A (zh) 检测常驻式跨站脚本漏洞的方法和装置
JP5112401B2 (ja) Web行動履歴取得システム、Web行動履歴取得方法、ゲートウェイ装置、及びプログラム
CN104040538A (zh) 一种互联网应用交互方法、装置及系统
EP2847976A1 (en) Method and apparatus
CN112261111A (zh) 一种应用程序内浏览器跨域访问实现方法及系统
CN111737629B (zh) 一种数据探测方法及装置
CN109862074B (zh) 一种数据采集方法、装置、可读介质及电子设备
CN113472831B (zh) 一种服务访问方法、装置、网关设备及存储介质

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
GR01 Patent grant
GR01 Patent grant