CN113626675A - 一种数据处理方法、***及计算机存储介质 - Google Patents
一种数据处理方法、***及计算机存储介质 Download PDFInfo
- Publication number
- CN113626675A CN113626675A CN202110912357.7A CN202110912357A CN113626675A CN 113626675 A CN113626675 A CN 113626675A CN 202110912357 A CN202110912357 A CN 202110912357A CN 113626675 A CN113626675 A CN 113626675A
- Authority
- CN
- China
- Prior art keywords
- request
- feedback information
- server
- code
- target
- 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.)
- Pending
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 17
- 238000004458 analytical method Methods 0.000 claims abstract description 41
- 238000000034 method Methods 0.000 claims abstract description 31
- 230000009193 crawling Effects 0.000 claims abstract description 15
- 238000012545 processing Methods 0.000 claims description 52
- 230000004044 response Effects 0.000 claims description 5
- 239000000126 substance Substances 0.000 claims description 2
- 229910052711 selenium Inorganic materials 0.000 description 17
- BUGBHKTXTAQXES-UHFFFAOYSA-N Selenium Chemical compound [Se] BUGBHKTXTAQXES-UHFFFAOYSA-N 0.000 description 15
- 239000011669 selenium Substances 0.000 description 15
- 238000010586 diagram Methods 0.000 description 11
- 238000004891 communication Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 9
- 230000008569 process Effects 0.000 description 8
- 238000004590 computer program Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 7
- VYZAMTAEIAYCRO-UHFFFAOYSA-N Chromium Chemical compound [Cr] VYZAMTAEIAYCRO-UHFFFAOYSA-N 0.000 description 6
- 230000007246 mechanism Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000005236 sound signal Effects 0.000 description 4
- 238000012360 testing method Methods 0.000 description 3
- 230000005856 abnormality Effects 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 235000014510 cooky Nutrition 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/107—License processing; Key processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/44—Program or device authentication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4482—Procedural
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4488—Object-oriented
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Stored Programmes (AREA)
Abstract
本发明实施例提供一种数据处理方法、***及存储介质,所述方法包括:利用网络爬虫向服务端发送第一请求信息;获得所述服务端的反馈信息;在所述反馈信息中包含目标代码的情况下,调用目标解析模块解析所述目标代码,得到解析结果,所述目标代码为所述服务端对所述第一请求信息进行的安全认证;将所述解析结果写入第二请求信息;利用所述网络爬虫向所述服务端发送所述第二请求信息,以用于通过所述服务端的安全认证,实现成功请求。本发明实施例的数据处理方法能够使网络爬虫发起的请求通过服务器的安全认证,使网络爬虫能够成功登录网站进行数据爬取。
Description
技术领域
本发明实施例涉及网络爬虫领域,特别涉及一种数据处理方法、***及计算机存储介质。
背景技术
JavaScript:自从20世界50年代,第一门汇编语言发明直到在,编程语言经过了几十年的迅速发展,如今已是百花齐放的时代,其中有深耕操作***底层的C/C++语言,后端程序的王者Java语言,网页迅捷开发首选php语言,人工智能时代的黑马Python语言,以及天生自带高并发的Golang语言。
在这众多语言之中,每一个都有其独特之处和擅长的方向,其中有一门语言另辟蹊径,专攻浏览器领域,成为众多浏览器中的标配,它就是JavaScript语言,常用于对HTML进行操作,以及对浏览器部分功能进行操作的一种前端语言。
JS:生产环境中对JavaScript的一种简称
Selenium:用于Web应用程序测试的工具,针对不同的语言都有其对应的实现,如使用python代码实现的python Selenium。基于Python Selenium的动态网页爬虫技术,Python Selenium模拟浏览器对返回的数据进行处理,然后再向服务端发起请求,并重复以上操作。
进一步地,网络爬虫,其本质就是模拟用户向目标服务器发起请求,不同的点是用户请求的数据中可以是目标网站公开的资源也可以是非公开的资源,(例如需要充值VIP才可以访问的资源或者企业内部员工登录账号才可访问的资源都是非公开资源)。在法律许可的范围内,爬虫只可以去请求爬去目标站点的公开资源。但是有很多时候,网站会部署一些反爬措施,此时我们就需要一些方法来对这些反爬措施进行绕过。上述地PyhonSelenium是目前市面上用来绕过一些针对公开资源反爬措施的一种组件,其原理就是模拟浏览器,与其说是模拟浏览器,更贴切的说法是Python Selenium在运行的时候会在本地开启一个浏览器,例如Firefox、Chrome、IE,开启浏览器的时候可以选择开启一个有界面的浏览器,同样可以以Headless的形式开启一个无界面的浏览器,Headless Chrome是Chrome浏览器的无界面形态,可以在不打开浏览器的前提下,使用所有Chrome支持的特性运行浏览器程序。相比于现代浏览器,Headless Chrome更加方便测试Web应用,获得网站的截图,做爬虫抓取信息等。相比于较早的PhantomJS,SlimerJS等,Headless Chrome则更加贴近浏览器环境。
目前,开发人员通过调用Pyhon Selenium模块,启动一个Headless无界面浏览器,然后通过这个无界面浏览器和目标服务器进行交互,去请求目标服务器上的公开资源,如果目标服务器上针对这些公开资源也设置了一些反爬校验规则的话,那么浏览器会自动处理,因为反爬的最终目的是为了确认是正常的用户通过浏览器发起的请求,而非是一个Python爬虫程序发起的请求,所以Pyhon Selenium开启的这个Headless无界面浏览器就会让服务端误以为这是一个用户通过浏览器发起的正常请求,从而绕过当前的反爬机制,实现爬虫对web的测试。
虽然使用Python Selenium确实可以绕过一些复杂度较低的反爬措施,但是经过长时间的使用该技术,逐渐发现了Python Selenium在应对一些反爬措施时的局限性,就是在处理一些通过执行服务端返回的安全校验码时,如图1所示,由于安全校验码复杂度高,且多变,Python Selenium无法很好的处理这些安全校验码,导致爬虫数据爬取失败。
发明内容
本发明实施例提供了一种能够使网络爬虫发起的请求通过服务器的安全认证,使网络爬虫能够成功登录网站进行数据爬取的数据处理方法、***及计算机存储介质。
为了解决上述技术问题,本发明实施例提供一种数据处理方法,包括:
利用网络爬虫向服务端发送第一请求信息;
获得所述服务端的反馈信息;
在所述反馈信息中包含目标代码的情况下,调用目标解析模块解析所述目标代码,得到解析结果,所述目标代码为所述服务端对所述第一请求信息进行的安全认证;
将所述解析结果写入第二请求信息;
利用所述网络爬虫向所述服务端发送所述第二请求信息,以用于通过所述服务端的安全认证,实现成功请求。
作为一实施例,所述在所述反馈信息中包含目标代码的情况下,调用目标解析模块解析所述目标代码,得到解析结果,包括:
解析所述反馈信息,确定所述反馈信息中是否包含所述目标代码;
在包含所述目标代码的情况下,基于所述目标代码的类型从本地的多个解析模块中确定出用于解析所述目标代码的目标解析模块,其中,所述多个解析模块分别用于解析不同类型的目标代码;
将所述目标代码输入至所述目标解析模块中,以得到所述解析结果。
作为一实施例,所述目标代码的类型至少包括JavaScript类型,所述目标解析模块至少包括用于解析JavaScript代码的解析引擎。
作为一实施例,还包括:
基于所述反馈信息确定本次请求是否成功,若未成功,则确定所述反馈信息中是否包含所述目标代码。
作为一实施例,所述基于所述反馈信息确定本次请求是否成功,包括:
确定所述反馈信息中服务端响应的状态码;
至少确定所述状态码是否为表征请求成功的目标状态码,若是,则确定本次请求成功,若不是,则确定本次请求不成功。
作为一实施例,所述基于所述反馈信息确定本次请求是否成功,包括:
基于所述反馈信息中携带的内容以及所需爬取的内容确定本次请求是否成功。
作为一实施例,还包括:
若成功,记录所述反馈信息中携带的内容。
作为一实施例,还包括:
在确定未包含所述目标代码的情况下,输出表征爬取异常的提示信息。
本申请另一实施例同时提供一种数据处理***,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述一个处理器执行的指令,所述指令被所述至少一个处理器执行以实现如上所述的数据处理方法。
本申请另一实施例还提供一种计算机存储介质,当存储介质中的指令由车载灯语编辑***对应的处理器执行时,使得数据处理***能够实现如上所述的数据处理方法。
基于上述实施例的公开可以获知,本发明实施例具备的有益效果包括在使用网络爬虫爬取网站数据时,能够及时发现服务端的反馈信息中是否具有用于安全认证的目标代码,并在具有该代码时有效处理目标代码,以通过服务端的安全认证,使网络爬虫能够成功登录网站爬取数据,以辅助用户完成例如网络程序测试或搜索引擎的数据搜索功能。
附图说明
图1为现有技术中服务端反馈的包含安全认证代码的信息示意图。
图2为本发明实施例中的数据处理方法的流程图。
图3为本发明另一实施例中的数据处理方法的流程图。
图4为本发明另一实施例中的数据处理方法的逻辑思维图。
图5为本发明实施例中的数据处理方法实际应用流程图。
图6为本发明实施例中的数据处理***的结构关系图。
具体实施方式
下面,结合附图对本发明的具体实施例进行详细的描述,但不作为本发明的限定。
应理解的是,可以对此处公开的实施例做出各种修改。因此,下述说明书不应该视为限制,而仅是作为实施例的范例。本领域的技术人员将想到在本公开的范围和精神内的其他修改。
包含在说明书中并构成说明书的一部分的附图示出了本公开的实施例,并且与上面给出的对本公开的大致描述以及下面给出的对实施例的详细描述一起用于解释本公开的原理。
通过下面参照附图对给定为非限制性实例的实施例的优选形式的描述,本发明的这些和其它特性将会变得显而易见。
还应当理解,尽管已经参照一些具体实例对本发明进行了描述,但本领域技术人员能够确定地实现本发明的很多其它等效形式,它们具有如权利要求所述的特征并因此都位于借此所限定的保护范围内。
当结合附图时,鉴于以下详细说明,本公开的上述和其他方面、特征和优势将变得更为显而易见。
此后参照附图描述本公开的具体实施例;然而,应当理解,所公开的实施例仅仅是本公开的实例,其可采用多种方式实施。熟知和/或重复的功能和结构并未详细描述以避免不必要或多余的细节使得本公开模糊不清。因此,本文所公开的具体的结构性和功能性细节并非意在限定,而是仅仅作为权利要求的基础和代表性基础用于教导本领域技术人员以实质上任意合适的详细结构多样地使用本公开。
本说明书可使用词组“在一种实施例中”、“在另一个实施例中”、“在又一实施例中”或“在其他实施例中”,其均可指代根据本公开的相同或不同实施例中的一个或多个。
下面,结合附图详细的说明本发明实施例。
如图2所示,本发明实施例提供一种数据处理方法,包括:
利用网络爬虫向服务端发送第一请求信息;
获得服务端的反馈信息;
在反馈信息中包含目标代码的情况下,调用目标解析模块解析目标代码,得到解析结果,目标代码为服务端对第一请求信息进行的安全认证;
将解析结果写入第二请求信息;
利用网络爬虫向服务端发送第二请求信息,以用于通过服务端的安全认证,实现成功请求。
例如,***或爬虫工程师启动网络爬虫程序,利用网络爬虫向服务端发送第一请求信息,服务端接收到该第一请求信息后,即接收到由第一请求信息形成的请求数据包后,会分析该请求数据包中的第一请求信息,该第一请求信息中可以包含网络爬虫想要爬取的公开资源数据/页面,服务端经分析后基于分析结果确定出反馈信息,并将该反馈信息发送给***,***获得反馈信息后,会分析该反馈信息,并确定该反馈信息中是否具有目标代码,该目标代码用于表征服务端对第一请求信息进行的安全认证,若***确定反馈信息中具有目标代码,则调用对应的目标解析模块来解析该目标代码,获得解析结果,并将该解析结果写入第二请求信息中,重新发送给服务端,由服务端对解析结果进行认证,若认证通过,则请求成功,网络爬虫便能够成功登录网站页面进行所需数据的爬取。
采用本实施例中的方法可在使用网络爬虫爬取网站数据时,能够及时发现服务端的反馈信息中是否具有用于安全认证的目标代码,并在具有该代码时有效处理目标代码,以通过服务端的安全认证,使网络爬虫能够成功登录网站爬取数据,以辅助用户完成例如网络程序测试或搜索引擎的数据搜索功能。
进一步地,如图3和图4所示,本实施例中在反馈信息中包含目标代码的情况下,调用目标解析模块解析目标代码,得到解析结果,包括:
解析反馈信息,确定反馈信息中是否包含目标代码;
在包含目标代码的情况下,基于目标代码的类型从本地的多个解析模块中确定出用于解析目标代码的目标解析模块,其中,多个解析模块分别用于解析不同类型的目标代码;
将目标代码输入至目标解析模块中,以得到解析结果。
例如,***收到反馈信息后,会解析反馈信息,以确定反馈信息中是否包含目标代码,在包含目标代码的情况下,则确定目标代码的类型,并基于该类型从本地的多个解析模块中确定出用于解析该类型代码的解析模块,然后将目标代入输入至解析模块中,由解析模块进行解析,得到解析结果。本实施例中的多个解析模块分别用于解析不同类型的代码,该多个解析模块可以设置在***本地,例如设置在网络爬虫程序中,也可以独立设置在不同解析程序中。
本实施例中的目标代码的类型至少包括JavaScript类型,目标解析模块至少包括用于解析JavaScript代码的解析引擎。
具体地,本实施例中是基于Python Selenium实现网络爬虫的数据爬取的,即是由Python编写的爬虫发出请求。本实施例中的网络爬虫程序还引入了使用java语言实现的Java ScriptEngine,其具有强悍的处理JavaScript代码的能力,本实施例中的网络爬虫通过该模块可显著增加JavaScript代码的处理能力。而本实施例中的目标解析模块即为JavaScriptEngine模块,其可以嵌入在Python Selenium程序中,也可与其独立设置,但隶属于同一***中,以便于网络爬虫调用Java ScriptEngine模块处理JavaScript代码。当然,上述目标代码的类型并不唯一,还可以包括由其他语言格式编写的代码,甚至是未来出现的新的代码语言,而目标解析模块即为用于解析该代码语言的模块,具体形式不定。
进一步地,本实施例中的方法还包括:
基于反馈信息确定本次请求是否成功,若未成功,则确定反馈信息中是否包含目标代码。
例如,反馈信息中会包含表征本次请求是否成功的信息,或者包含可以辅助网络爬虫确定其是否请求成功的信息等。
具体地,本实施例中基于反馈信息确定本次请求是否成功,包括:
确定反馈信息中服务端响应的状态码;
至少确定状态码是否为表征请求成功的目标状态码,若是,则确定本次请求成功,若不是,则确定本次请求不成功。
例如,第一请求信息是http请求信息,当服务端基于第一请求信息生成反馈信息时,会在反馈信息中加入http状态码,即本实施例中所述的服务端响应的状态码。HTTP状态码表示当浏览者访问一个网页时,浏览者的浏览器会向网页所在服务器发出请求。当浏览器接收并显示网页前,此网页所在的服务器会返回一个包含HTTP状态码的信息头(ServerHeader)用以响应浏览器的请求。HTTP状态码的英文为HTTP Status Code。常见的HTTP状态码包括:
·200-请求成功
·301-资源(网页等)被永久转移到其它URL
·404-请求的资源(网页等)不存在
·500-内部服务器错误
***可以根据反馈的状态码是否为200来确定本次请求是否请求成功。
进一步地,在另一实施例中,基于反馈信息确定本次请求是否成功,包括:
基于反馈信息中携带的内容以及所需爬取的内容确定本次请求是否成功。
例如,网络爬虫可以根据反馈信息中携带的内容,以及本次需要请求的内容来综合确定本次请求是否成功。如对比本次请求的内容是否与反馈信息中携带的内容一致,或者开发人员根据需要爬虫爬取的内容而自行定义一个标准,如定义反馈信息中包含一个固定信息时,则确定请求成功,否则为不成功。爬虫根据其需要爬取的内容首先确定对应的固定信息,然后在反馈信息中进行搜寻,若搜寻到一致的信息,则确定请求成功,否则请求失败。上述固定信息具体不唯一,如包括某个字段等。
进一步地,本实施例中的方法还包括:
若确定请求成功,则记录反馈信息中携带的内容。
如爬虫或***从反馈信息中确定出了其所需要爬取的公共资源时,则将该资源以及本次请求结果解析后写入数据库或本地文件中,以供后续用户等的使用。
进一步地,本实施例中的方法还包括:
在确定未包含目标代码的情况下,输出表征爬取异常的提示信息。
也即,爬虫或***确定本次未包含目标代码,同时确定请求未成功时,输出表征爬取异常的提示信息,接触本次数据爬取。
具体地,如图4和图5所示,以下结合不同的实际应用场景进一步说明本实施例的方法:
1)第一种,首先第一请求信息以及第二请求信息还是由Python编写的爬虫发出,在编写爬虫的过程中可以使用Python Selenium库,或者也可以使用Request库或者Urlib库,这一步的目的是为了发送构造好的第一请求信息或第二请求信息发出,而使用PythonSelenium会方便一些,可以省去构造HTTP请求头部信息的步骤,如果使用Request库或者Urlib库的话则需要手动构造请求报文的头部信息。当爬虫将第一请求信息发送至服务端后,服务端会接收到来自Python爬虫的请求数据包,此时服务端接受并分析该请求数据包,如果该服务端没有任何的反爬校验措施的情况下,服务端则会判断请求中是否有必须的参数信息,如cookie,或者get请求和post请求中的某个参数等等,以确定请求是否符合传输协议,若判断有所需要的参数,服务端就会返回此次Python爬虫所请求的公开资源页面,并加入状态码200,由于在Python编写爬虫的代码时加入了一个判断此次HTTP响应的状态码是否为200的逻辑,故爬虫通过该逻辑判断反馈信息中是否包含状态码200便可确定本次请求是否成功。在确定请求成功后,将公共资源等请求结果写入数据库或本地文件中进行存储。而倘若服务端确定第一请求信息中不包含指定参数信息,则服务端返回请求失败的相应数据,并加上对应的http状态码,但该状态码不为200。
2)第二种,如果服务端上存在有反爬校验机制,服务端此时接受到第一请求信息后,由于该请求是通过Python Selenium发起的请求,该种方式可以绕过一部分的反爬措施,让服务端误认为本次请求是用户通过浏览器发送过来的,此种情况下服务端仍然可以返回给爬虫所需要的公开资源信息以及状态码200。
3)第三种,服务端上存在较为严格的反爬校验机制,该机制默认不信任所有的请求信息,即使真的是用户通过浏览器发送的请求也会默认不信任,这种情况下服务端就会在返回的数据中放入一些JS代码,这些JS代码就是所谓的反爬手段,即安全认证手段。本实施例中通过在编写爬虫程序时,加入一个逻辑判断失败后的执行分支,也就是此次服务端返回的相应数据包中不包含有此次请求的公共资源时应执行的分支,并在该判断逻辑后再进行一次判断,用于判断该请求包中都包含有哪些内容,是否包含有JS代码。接着编写一个逻辑用于判断存在JS代码时的执行分支,该分支由Java语言编写,该段Java程序中首先对JS代码进行字符串化的处理,这一步就是自定义对JS的处理,此时的JS代码已经转化成为字符串,可以随意对其内容进行修改,然后调用Java ScriptEngine模块执行处理后的JS代码,并输出执行结果给Python爬虫程序。由爬虫程序根据Js代码中所写将处理完成后的结果放入下一个请求数据包中发送给服务器,服务端接受第二次爬虫发来的请求数据包发现该请求数据包中有服务端所需要的验证信息时,返回爬虫所请求的公开资源信息以及状态码200给网络爬虫,使网络爬虫请求成功。
4)第四种,此种情况下,服务端直接判断该请求并非来自用户,从而直接返回404等无法访问或者访问错误的状态码,该种情况下可表明目标服务端上存在极其严格的反爬和校验机制,或此时服务端出现异常现象,或此时服务端不具有所需爬取的内容,此时爬虫会抛出表征异常的提示信息,以通知***或用户本次请求状态。
本实施例中网络爬虫将请求资源,接受响应和记录结果部分交由Python来进行编写,而处理JS代码部分交由功能更为强大的Java ScriptEngine来进行处理,如此一来,再爬虫面对目标服务器采用JS代码等手段的反爬措施时即可轻松绕过,成功实现数据爬取。而且本实施例的爬虫设计中,优选将JS代码处理的部分独立出来,可有利于降低爬虫程序的耦合度,同时兼具Python和Java的跨平台特点。而且,本实施例中的方法强化了爬虫处理JS代码的能力,以往的网络爬虫通过模拟浏览器执行数据爬取的过程中很难单独对JS的解析进行人工干涉,而本实施例通过单独将JS解析部分独立出来,可实现开发人员对该部分内容进行自定义设置。
图6为本发明实施例中的数据处理***的结构关系图。如图6所示,本发明实施例提供一种数据处理***,包括:
至少一个处理器602,
与至少一个处理器602接的存储器604,
所述存储器604可被所述一个处理器602指令,所述指令被所述至少一个处理器602实现上述任一实施例所述的数据处理方法。
参照图6,该数据处理***600可以包括以下一个或多个组件:处理组件602,存储器604,电源组件606,多媒体组件608,音频组件610,输入/输出(I/O)的接口612,传感器组件614,以及通信组件616。
处理组件602通常控制数据处理***600的整体操作。处理组件602可以包括一个或多个处理器620来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件602可以包括一个或多个模块,便于处理组件602和其他组件之间的交互。例如,处理组件602可以包括多媒体模块,以方便多媒体组件608和处理组件602之间的交互。
存储器604被配置为存储各种类型的数据以支持在数据处理***600的操作。这些数据的示例包括用于在数据处理***600上操作的任何应用程序或方法的指令,如文字,图片,视频等。存储器604可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
电源组件606为数据处理***600的各种组件提供电源。电源组件606可以包括电源管理***,一个或多个电源,及其他与为数据处理***600生成、管理和分配电源相关联的组件。
多媒体组件608包括在数据处理***600和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件608还可以包括一个前置摄像头和/或后置摄像头。当数据处理***600处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜***或具有焦距和光学变焦能力。
音频组件610被配置为输出和/或输入音频信号。例如,音频组件610包括一个麦克风(MIC),当数据处理***600处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器604或经由通信组件616发送。在一些实施例中,音频组件610还包括一个扬声器,用于输出音频信号。
I/O接口612为处理组件602和***接口模块之间提供接口,上述***接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
传感器组件614包括一个或多个传感器,用于为数据处理***600提供各个方面的状态评估。例如,传感器组件614可以包括声音传感器。另外,传感器组件614可以检测到数据处理***600的打开/关闭状态,组件的相对定位,例如组件为数据处理***600的显示器和小键盘,传感器组件614还可以检测数据处理***600或数据处理***600的一个组件的位置改变,用户与数据处理***600接触的存在或不存在,数据处理***600方位或加速/减速和数据处理***600的温度变化。传感器组件614可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件614还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件614还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器,。
通信组件616被配置为使数据处理***600提供和其他设备以及云平台之间进行有线或无线方式的通信能力。数据处理***600可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信组件616经由广播信道接收来自外部广播管理***的广播信号或广播相关信息。在一个示例性实施例中,通信组件616还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
在示例性实施例中,数据处理***600可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述车载灯语编辑方法。
本发明一实施例还提供一种计算机存储介质,当存储介质中的指令由数据处理***对应的处理器执行时,使得数据处理***能够实现上述任一实施例所述的数据处理方法。
本领域内的技术人员应明白,本发明的实施例可提供为方法、***、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上实施例仅为本发明的示例性实施例,不用于限制本发明,本发明的保护范围由权利要求书限定。本领域技术人员可以在本发明的实质和保护范围内,对本发明做出各种修改或等同替换,这种修改或等同替换也应视为落在本发明的保护范围内。
Claims (10)
1.一种数据处理方法,包括:
利用网络爬虫向服务端发送第一请求信息;
获得所述服务端的反馈信息;
在所述反馈信息中包含目标代码的情况下,调用目标解析模块解析所述目标代码,得到解析结果,所述目标代码为所述服务端对所述第一请求信息进行的安全认证;
将所述解析结果写入第二请求信息;
利用所述网络爬虫向所述服务端发送所述第二请求信息,以用于通过所述服务端的安全认证,实现成功请求。
2.根据权利要求1所述的方法,其中,所述在所述反馈信息中包含目标代码的情况下,调用目标解析模块解析所述目标代码,得到解析结果,包括:
解析所述反馈信息,确定所述反馈信息中是否包含所述目标代码;
在包含所述目标代码的情况下,基于所述目标代码的类型从本地的多个解析模块中确定出用于解析所述目标代码的目标解析模块,其中,所述多个解析模块分别用于解析不同类型的目标代码;
将所述目标代码输入至所述目标解析模块中,以得到所述解析结果。
3.根据权利要求2所述的方法,其中,所述目标代码的类型至少包括JavaScript类型,所述目标解析模块至少包括用于解析JavaScript代码的解析引擎。
4.根据权利要求1所述的方法,其中,还包括:
基于所述反馈信息确定本次请求是否成功,若未成功,则确定所述反馈信息中是否包含所述目标代码。
5.根据权利要求4所述的方法,其中,所述基于所述反馈信息确定本次请求是否成功,包括:
确定所述反馈信息中服务端响应的状态码;
至少确定所述状态码是否为表征请求成功的目标状态码,若是,则确定本次请求成功,若不是,则确定本次请求不成功。
6.根据权利要求4所述的方法,其中,所述基于所述反馈信息确定本次请求是否成功,包括:
基于所述反馈信息中携带的内容以及所需爬取的内容确定本次请求是否成功。
7.根据权利要求4所述的方法,其中,还包括:
若成功,记录所述反馈信息中携带的内容。
8.根据权利要求4所述的方法,其中,还包括:
在确定未包含所述目标代码的情况下,输出表征爬取异常的提示信息。
9.一种数据处理***,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述一个处理器执行的指令,所述指令被所述至少一个处理器执行以实现如权利要求1-8任一项所述的数据处理方法。
10.一种计算机存储介质,当存储介质中的指令由数据处理***对应的处理器执行时,使得数据处理***能够实现如权利要求1-8任一项所述的数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110912357.7A CN113626675A (zh) | 2021-08-10 | 2021-08-10 | 一种数据处理方法、***及计算机存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110912357.7A CN113626675A (zh) | 2021-08-10 | 2021-08-10 | 一种数据处理方法、***及计算机存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113626675A true CN113626675A (zh) | 2021-11-09 |
Family
ID=78383884
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110912357.7A Pending CN113626675A (zh) | 2021-08-10 | 2021-08-10 | 一种数据处理方法、***及计算机存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113626675A (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110933065A (zh) * | 2019-11-26 | 2020-03-27 | 深圳市信联征信有限公司 | 网页防爬虫方法、装置、计算机设备及存储介质 |
CN110968760A (zh) * | 2018-09-30 | 2020-04-07 | 北京国双科技有限公司 | 网页数据的爬取方法、装置、网页登录方法及装置 |
CN111191097A (zh) * | 2019-12-20 | 2020-05-22 | 天阳宏业科技股份有限公司 | 一种网络爬虫自动化获取网页信息方法、装置及*** |
CN111552854A (zh) * | 2020-04-24 | 2020-08-18 | 北京明略软件***有限公司 | 一种网页数据抓取方法、装置、存储介质和设备 |
CN111597424A (zh) * | 2020-07-21 | 2020-08-28 | 平安国际智慧城市科技股份有限公司 | 爬虫识别方法、装置、计算机设备和存储介质 |
CN111666465A (zh) * | 2019-03-06 | 2020-09-15 | 上海晶赞融宣科技有限公司 | 爬取数据的方法及装置、存储介质、终端 |
-
2021
- 2021-08-10 CN CN202110912357.7A patent/CN113626675A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110968760A (zh) * | 2018-09-30 | 2020-04-07 | 北京国双科技有限公司 | 网页数据的爬取方法、装置、网页登录方法及装置 |
CN111666465A (zh) * | 2019-03-06 | 2020-09-15 | 上海晶赞融宣科技有限公司 | 爬取数据的方法及装置、存储介质、终端 |
CN110933065A (zh) * | 2019-11-26 | 2020-03-27 | 深圳市信联征信有限公司 | 网页防爬虫方法、装置、计算机设备及存储介质 |
CN111191097A (zh) * | 2019-12-20 | 2020-05-22 | 天阳宏业科技股份有限公司 | 一种网络爬虫自动化获取网页信息方法、装置及*** |
CN111552854A (zh) * | 2020-04-24 | 2020-08-18 | 北京明略软件***有限公司 | 一种网页数据抓取方法、装置、存储介质和设备 |
CN111597424A (zh) * | 2020-07-21 | 2020-08-28 | 平安国际智慧城市科技股份有限公司 | 爬虫识别方法、装置、计算机设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110413908B (zh) | 基于网站内容对统一资源定位符进行分类的方法和装置 | |
CN104270404B (zh) | 一种基于终端标识的登录方法及装置 | |
CN110855676B (zh) | 网络攻击的处理方法、装置及存储介质 | |
US20220294797A1 (en) | Website verification platform | |
WO2021022689A1 (zh) | 一种信息采集方法和装置 | |
US11004163B2 (en) | Terminal-implemented method, server-implemented method and terminal for acquiring certification document | |
CN110309931B (zh) | 一种业务优化方法及装置 | |
JP2015535376A (ja) | オンボードハードウェア関数を備えたウェブページ | |
US20200005417A1 (en) | Techniques for generating analytics based on interactions through digital channels | |
CN112988599B (zh) | 一种页面调试方法、装置、电子设备和存储介质 | |
CN105793862A (zh) | 动态程序在隔离环境中的受指导执行 | |
CN110855642B (zh) | 应用漏洞检测方法、装置、电子设备及存储介质 | |
US11558414B1 (en) | Autonomous penetration tester | |
CN111522749B (zh) | 页面测试方法、装置、可读存储介质及电子设备 | |
CN103970882A (zh) | 渲染页面的方法及装置 | |
CN112990495A (zh) | 一种车辆售后诊断的方法、装置、***及存储介质 | |
CN107846381B (zh) | 网络安全处理方法及设备 | |
US10270771B1 (en) | Mid-session live user authentication | |
CN108509228B (zh) | 加载页面的方法、终端设备及计算机可读存储介质 | |
CN113961836A (zh) | 页面跳转方法、装置、电子设备及存储介质 | |
CN111143650B (zh) | 获取页面数据的方法、装置、介质及电子设备 | |
CN113626675A (zh) | 一种数据处理方法、***及计算机存储介质 | |
CN115514677B (zh) | 服务器拨测方法及*** | |
CN113626321B (zh) | 桥接测试方法、装置、***及存储介质 | |
CN108509229B (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 |