CN105516337B - 基于动态加载机制的web站点对接解析方法 - Google Patents
基于动态加载机制的web站点对接解析方法 Download PDFInfo
- Publication number
- CN105516337B CN105516337B CN201511008567.4A CN201511008567A CN105516337B CN 105516337 B CN105516337 B CN 105516337B CN 201511008567 A CN201511008567 A CN 201511008567A CN 105516337 B CN105516337 B CN 105516337B
- Authority
- CN
- China
- Prior art keywords
- script
- parsing
- data
- web site
- class libraries
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
Abstract
本发明公开了一种基于动态加载机制的web站点对接解析方法,能对外提供支持实时更新操作的动态解析服务,包括以下步骤:提供服务器对外服务接口和支撑脚本解析;提供解析脚本的检索服务;提供解析脚本的维护;利用动态配置爬虫脚本抓获数据;在上述步骤被加载后即能通过开启服务器对外提供实时解析服务。本发明支持对同一类的多个web站点进行对接,能保证在系统服务不中断的情况下用过配置和调用最新的解析脚本得到正确的解析结果。
Description
技术领域
本发明涉及基于动态加载机制的web站点对接解析方法,具体是基于Python动态加载机制的web站点对接解析方法。
背景技术
随着移动互联网技术的迅猛发展,人们在日常生活中需要快捷的获取越来越多的来自互联网的信息。然而现有的web站点都是独立运行于各自的服务器,并且之间缺少交互,这就使得单一的移动客户端只能对接相应的web系统。实际上,一组功能相同的web站点其对外提供的服务可以用大致统一的流程来规范,并且将这些服务数据统一在一个系统,从而获得大量的使用者以及有价值的数据。
发明内容
发明目的:针对上述现有存在的问题和不足,本发明的目的是提供一种基于动态加载机制的web站点对接解析方法,能将若干功能类似的web站点进行动态对接,支持在提供持续服务的情况下对web站点的变化进行实时的精准解析并生成一致的数据接口。
技术方案:为实现上述发明目的,本发明采用的技术方案为一种基于动态加载机制的web站点对接解析方法,能对外提供支持实时更新操作的动态解析服务,包括以下步骤:
1)提供服务器对外服务接口和支撑脚本解析;
2)提供解析脚本的检索服务;
3)提供解析脚本的维护;
4)利用动态配置爬虫脚本抓获数据;
在上述步骤被加载后即能通过开启服务器对外提供实时解析服务。
进一步的,所述步骤1)包括以下步骤:
11)通过开启SOCKET套接字监听相应的服务端口并解析调用者的请求参数;
12)根据上述的请求参数检索特定的解析脚本;
13)通过爬虫模块运行上述的脚本,过滤出格式化的数据;
14)将上述得到的格式化的数据返回给步骤11)中的请求者。
进一步的,所述步骤2)中,提供解析脚本的检索服务,根据调用者的请求参数在数据库中查询到相应的解析脚本,调用内建函数_(如python中的_import_)将该脚本作为一个类库进行导入,通过调用类库中的函数实现运行具体的爬虫脚本。
进一步的,所述步骤3)中,解析脚本的维护,负责根据目标web站点的数据访问流程更新解析脚本并将更新后的解析脚本配置到数据库中,包括如下步骤:
31)系统管理员通过分析现有的一个或多个目标web站点将其数据请求流程进行分类;
32)根据分类编写不同的解析类库脚本,同一分类的请求类库包含相同的函数名以支持步骤2)中通过类库名导入脚本并调用执行;
33)通过接口将编写的类库脚本更新至服务器并更改数据库。
进一步的,所述步骤4)中,利用可配置爬虫脚本抓获数据,根据配置好的脚本访问web站点,并将需要获取的格式化数据进行返回,包括如下步骤:
41)通过安装http访问类库(如Python中的urllib),调用所述http访问类库中的http请求函数访问目标web站点入口并获得html文本数据;
42)通过安装文档树操作类库(如Python中的beautifulSoup),调用所述文档树操作类库中的html过滤函数对所述步骤41)中获得的html文本数据进行清洗并获得格式化的数据;
43)循环执行步骤41)和步骤42),获得最终需要的数据并格式化后返回。
有益效果:本发明通过部署服务器上的解析脚本、实现解析脚本的检索、解析脚本的维护和依据可配置爬虫脚本实现提供持续的动态解析服务。通过为站点定制解析脚本并进行属性配置,方法使用者通过HTTP连接发起接口调用请求,解析模块动态加载最新的解析脚本进行站点解析并通过接口返回参数。开启配置好的服务器,即可对需要解析的站点组进行实时的动态解析。本发明支持对同一类的多个web站点进行对接,能保证在解析服务不中断的情况下用过配置和调用最新的解析脚本得到正确的解析结果。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成本发明的不当限定。在附图中:
图1 是本发明提供的一种基于动态加载机制的web站点对接解析方法的场景结构图;
图2 是本发明提供的一种基于动态加载机制的web站点对接解析方法的服务器数据处理流程图;
图3是本发明提供的一种基于动态加载机制的web站点对接解析方法的爬虫脚本处理流程图。
具体实施方式
为了使本发明所要解决的技术问题、技术方案及有益效果更加清楚、明白,以下结合附图和实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不限定本发明。
本发明基于动态加载机制的web站点对接解析方法提供了一种用于融合异构且无法提供对外接口的web站点组的解决方案。通过搭建和运行对接平台,可以将目标站点组内各个站点的数据分离、抽取出来,并封装成规范化的对外数据接口,以此向外层调用者提供web service服务。
下面通过基于本发明设计的高校信息融合平台进行详细的说明。基于python语言,通过该平台的搭建与运行旨在将校园中现有分散的信息站点对接起来,并且为移动端提供数据访问接口,使其可以在屏蔽学校各个web站点异构现状的情况下准确、有效的获得数据访问服务。平台需要对接的web站点有教务处网站、学校官网和校园卡管理系统等应用网站。对于接入站点接口未开放的,为确保访问安全,要求用户提供的该web站点的账号和验证信息。用户利用手机客户端进行访问。
本方法应用的维护者,即系统管理员为对接网站编写各自对应的解析脚本,每个脚本中存放了特定对接站点的访问方式信息,并保存解析脚本到数据库中;本方法允许维护者在解析服务的同时动态维护解析脚本。服务端的解析方法模块提供解析脚本检索服务,根据用户的请求参数在数据库中查询到相应的解析脚本,调用内建函数将(_import_函数)脚本作为类库进行导入,调用类库中的函数运行具体的爬虫脚本。爬虫模块根据选中的可配置爬虫脚本和用户发来的请求信息,从接入站点抓获数据(通过urllib类库)。若数据获取正确,对数据进行进一步的数据清洗(通过beautifulSoup类库)以获得格式化的数据,返回给用户的手机客户端。
基于本发明设计的对接方法在实际应用场景中的使用角色是服务提供者,应用本方法的构建的服务系统能过向调用者屏蔽由于目标web站点异构(包括系统架构异构和内容异构)导致的数据不统一或不可访问;另外,由于需要对接的web站点存在的不确定性,本发明所述的方法为此类Web站点的对接解析提供了解析脚本动态维护和动态库加载机制。
图1是本方法应用的场景图,方法的使用者由调用者和维护者组成。当调用者发起请求时,服务端首先获取请求的参数,并检索对接web站点的解析脚本,然后将参数和站点数据的数据请求方式封装进一个请求体,一并向目标站点发起请求,服务端利用爬虫模块获取对接站点的数据,并交给解析方法进行过滤,最终获得规格化数据返回至调用者。当维护者通过HTTP协议远程提交新的解析脚本,更新解析方法和数据,对目标站点的实时维护,确保调用者能够通过脚本获得正确的解析方法。
其中需要注意的是,大多数请求中需要脚本编写人员通过本地缓存的方式来记录请求的登录信息(如COOKIE数据),以便在下次请求时可直接将其封装至请求体中。
基于上述的数据流通方式,基于本发明所设计的对接系统以web service的形式对外提供服务。
请参考图2,服务器数据处理流程描述了使用场景中的调用者在进行服务请求时系统的响应处理过程。
对接平台的核心在于将目标web站点中的数据提取出来,并以规范的格式返回至调用者。基于本发明设计的对接方法将提取过程封装在解析模块中的动态调用库中,当制定的调用库被检索到并且动态加载、执行时,调用库中的爬虫脚本自动完成数据的提取。
图3是爬虫脚本处理流程。当服务端解析程序将检索到的解析脚本动态加载到系统中以后,会调用其中统一命名的解析函数。解析函数的具体处理流程如下:根据调用者的请求参数封装一个请求体,然后执行该请求体,获得html数据。通过对html数据的分析判断是否获得了正确的html数据。若数据获取正确则对其进行进一步的数据清洗以获得格式化的数据。若出现数据错误,则返回错误提示。
通用的数据解析流程如下:封装账号信息进行模拟登录、根据目标web站点中目标数据所在的页面再次发起http请求、对上一步获得的目标页面进行数据过滤、将数据规格化之后返回。
本发明具体应用途径很多,以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进,这些改进也应视为本发明的保护范围。
Claims (6)
1.一种基于动态加载机制的web站点对接解析方法,其特征在于,能对外提供支持实时更新操作的动态解析服务,包括以下步骤:
1)提供服务器对外服务接口和支撑脚本解析;
2)提供解析脚本的检索服务;
3)提供解析脚本的维护;
4)爬虫模块利用动态配置解析脚本抓获数据;
所述步骤3)中,解析脚本的维护,负责根据目标web站点的数据访问流程更新解析脚本并将更新后的解析脚本配置到数据库中,包括如下步骤:
31)系统管理员通过分析现有的一个或多个目标web站点将其数据请求流程进行分类;
32)根据分类编写不同的解析类库脚本,同一分类的请求类库包含相同的函数名以支持步骤2)中通过类库名导入脚本并调用执行;
33)通过接口将编写的类库脚本更新至服务器并更改数据库;
在上述步骤被加载后即能通过开启服务器对外提供实时解析服务。
2.根据权利要求1所述的基于动态加载机制的web站点对接解析方法,其特征在于,所述步骤1)包括以下步骤:
11)通过开启SOCKET套接字监听相应的服务端口并解析调用者的请求参数;
12)根据上述的请求参数检索特定的解析脚本;
13)通过爬虫模块运行上述的脚本,过滤出格式化的数据;
14)将上述得到的格式化的数据返回给步骤11)中的调用者。
3.根据权利要求2所述的基于动态加载机制的web站点对接解析方法,其特征在于,所述步骤12)包括以下步骤:
121)同属于一个功能组的不同解析脚本内包含相同命名与参数的函数体;
122)解析脚本能够作为一个类库被调用者加载并进行执行;
123)解析脚本内的函数体描述了一系列用于发起http请求以及获得http响应的html数据、清洗html数据和将最终的目标数据以规格化形式返回的脚本代码。
4.根据权利要求3所述的基于动态加载机制的web站点对接解析方法,其特征在于,所述函数体包括输入参数和输出参数。
5.根据权利要求1所述的基于动态加载机制的web站点对接解析方法,其特征在于,所述步骤2)中,提供解析脚本的检索服务,根据调用者的请求参数在数据库中查询到相应的解析脚本,调用内建函数__import__将该脚本作为一个类库进行导入,通过调用类库中的函数实现运行具体的解析脚本。
6.根据权利要求1所述的基于动态加载机制的web站点对接解析方法,其特征在于,所述步骤4)中,爬虫模块利用可配置解析脚本抓获数据,根据配置好的脚本访问web站点,并将需要获取的格式化数据进行返回,包括如下步骤:
41)通过安装http访问类库,调用所述http访问类库中的http请求函数访问目标web站点入口并获得html文本数据;
42)通过安装文档树操作类库,调用所述文档树操作类库中的html过滤函数对所述步骤41)中获得的html文本数据进行清洗并获得格式化的数据;
43)循环执行步骤41)和步骤42),获得最终需要的数据并格式化后返回。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201511008567.4A CN105516337B (zh) | 2015-12-28 | 2015-12-28 | 基于动态加载机制的web站点对接解析方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201511008567.4A CN105516337B (zh) | 2015-12-28 | 2015-12-28 | 基于动态加载机制的web站点对接解析方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105516337A CN105516337A (zh) | 2016-04-20 |
CN105516337B true CN105516337B (zh) | 2018-07-13 |
Family
ID=55723967
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201511008567.4A Active CN105516337B (zh) | 2015-12-28 | 2015-12-28 | 基于动态加载机制的web站点对接解析方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105516337B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109639770A (zh) * | 2018-11-22 | 2019-04-16 | 山东中创软件工程股份有限公司 | 一种数据访问方法、装置、设备及介质 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107357553A (zh) * | 2017-07-11 | 2017-11-17 | 郑州云海信息技术有限公司 | 一种数据采集管理方法及装置 |
CN109815384B (zh) * | 2019-01-29 | 2020-12-22 | 携程旅游信息技术(上海)有限公司 | 爬虫实现的方法、系统、设备及存储介质 |
CN110222251B (zh) * | 2019-05-27 | 2022-04-01 | 浙江大学 | 一种基于网页分割和搜索算法的服务包装方法 |
CN111937366B (zh) * | 2020-04-09 | 2023-08-01 | 北京微动数联科技有限公司 | Web请求处理方法和装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101246491A (zh) * | 2008-03-11 | 2008-08-20 | 孟智平 | 一种在网页中使用描述文件的方法和系统 |
CN101739425A (zh) * | 2008-11-04 | 2010-06-16 | 北大方正集团有限公司 | 一种网络页面整合的方法 |
CN102075572A (zh) * | 2010-12-29 | 2011-05-25 | 北京遥测技术研究所 | 一种嵌入式web服务器 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8706756B2 (en) * | 2011-05-11 | 2014-04-22 | Futurewei Technologies, Inc. | Method, system and apparatus of hybrid federated search |
-
2015
- 2015-12-28 CN CN201511008567.4A patent/CN105516337B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101246491A (zh) * | 2008-03-11 | 2008-08-20 | 孟智平 | 一种在网页中使用描述文件的方法和系统 |
CN101739425A (zh) * | 2008-11-04 | 2010-06-16 | 北大方正集团有限公司 | 一种网络页面整合的方法 |
CN102075572A (zh) * | 2010-12-29 | 2011-05-25 | 北京遥测技术研究所 | 一种嵌入式web服务器 |
Non-Patent Citations (1)
Title |
---|
使用Scrapy定制可动态配置的爬虫;Jark"s Blog;《URL:ju.outofmemory.cn/entry/169413》;20150522;全文 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109639770A (zh) * | 2018-11-22 | 2019-04-16 | 山东中创软件工程股份有限公司 | 一种数据访问方法、装置、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN105516337A (zh) | 2016-04-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105516337B (zh) | 基于动态加载机制的web站点对接解析方法 | |
USRE49486E1 (en) | System and method for tracking web interactions with real time analytics | |
CN106776313B (zh) | 一种模拟服务的方法、装置及集中管理平台 | |
CN107908659A (zh) | 数据报表配置方法、报表平台和计算机可读存储介质 | |
CN107368405A (zh) | 测试系统、测试方法、mock平台、拦截器和客户端 | |
CN109672580A (zh) | 全链路监控方法、装置、终端设备及存储介质 | |
CN106357609A (zh) | 一种创建用户的方法和系统、公网服务器及私有云设备 | |
CN104412565B (zh) | 用于涉及承载无关协议的套接字管理的方法 | |
CN111414193A (zh) | 基于微服务框架的业务系统的实现方法及相关装置 | |
CN107809383A (zh) | 一种基于mvc的路径映射方法及装置 | |
CN109656792A (zh) | 基于网络调用日志的应用性能分析方法、装置、计算机设备及存储介质 | |
CN107634947A (zh) | 限制恶意登录或注册的方法和装置 | |
CN106603283A (zh) | 一种模拟服务的方法、装置及集中管理平台 | |
CN107766509A (zh) | 一种网页静态备份的方法和装置 | |
CN109428877A (zh) | 一种用于通过用户设备访问业务系统的方法和装置 | |
CN104980421B (zh) | 一种批量请求处理方法及系统 | |
CN104731606B (zh) | 基于识别抓取技术实现企业应用集成管理的系统及方法 | |
CN111367690A (zh) | 一种支持组合api服务调用方法及装置 | |
CN111404937A (zh) | 一种服务器漏洞的检测方法和装置 | |
CN109445384A (zh) | 一种多设备控制系统 | |
CN108932146A (zh) | 页面显示方法、装置以及计算机可读存储介质 | |
CN116346660A (zh) | 基于依赖替换服务的数据处理方法、装置、设备及介质 | |
CN106126426B (zh) | 计算机软件的测试方法和装置 | |
CN104978199B (zh) | 一种用于多种浏览器的插件应用方法和装置 | |
CN108197979A (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 |