一种页面渲染方法及装置制造方法及图纸

技术编号:20915405 阅读:16 留言:0更新日期:2019-04-20 09:28
本发明专利技术提供了一种页面渲染方法及装置,该方法包括:通过反向代理工具判断获取到的页面访问请求是否为爬虫,若是,则执行下一步;通过Nodejs服务向反向代理工具发送页面加载中指令,根据预置脚本对原始页面进行渲染,得到同构页面;通过Nodejs服务向反向代理工具发送页面加载完成指令和同构页面,以完成爬虫操作和页面显示。本发明专利技术在执行爬虫前对原始页面进行提前渲染,使得爬虫能够抓取已经渲染的同构页面,解决传统前端渲染所存在的SEO问题。

A Page Rendering Method and Device

The invention provides a page rendering method and device, which includes: judging whether the page access request obtained is a crawler by reverse proxy tool, executing the next step if it is; sending instructions in page loading to reverse proxy tool through Nodejs service, rendering the original page according to preset script, and obtaining isomorphic pages; and reverse generation through Nodejs service. The tool sends page loading instructions and homogeneous pages to complete crawler operation and page display. The invention renders the original page in advance before executing the crawler, so that the crawler can grab the rendered isomorphic page and solve the problem of SEO existing in the traditional front-end rendering.

【技术实现步骤摘要】
一种页面渲染方法及装置
本专利技术涉及页面渲染
,尤其涉及一种页面渲染方法及装置。
技术介绍
随着计算机技术的蓬勃发展,用户与客户端之间的交互也随之增多,用户访问页面的需求量也日益上升。目前,页面渲染的方式通常有后端渲染和前端渲染两种主要方式,在前端渲染中,前端在捕捉用户的页面访问请求后,通常会从后端获取相应的内容然后对原始页面进行渲染,然而,在对原始页面进行渲染之前,前端会对原始页面进行爬虫即直接抓取原始页面,无法等待前端渲染完成,导致前端渲染完成的页面无法被抓取。
技术实现思路
本专利技术实施例提供了一种页面渲染方法及装置,可以在直出同构页面的同时,完成对同构页面的爬虫。根据本专利技术的一个方面,提供一种页面渲染方法,包括:通过反向代理工具判断获取到的页面访问请求是否为爬虫,若是,则执行下一步;通过Nodejs服务向所述反向代理工具发送页面加载中指令,根据预置脚本对原始页面进行渲染,得到同构页面;通过Nodejs服务向所述反向代理工具发送页面加载完成指令和所述同构页面,以完成爬虫操作和页面显示。优选地,所述通过Nodejs服务向所述反向代理工具发送页面加载中指令,根据预置脚本对原始页面进行渲染,得到同构页面具体为:通过Nodejs服务向所述反向代理工具发送页面加载中指令,确定与所述页面访问请求对应的预置脚本,调用Headless执行所述预置脚本完成对原始页面的渲染,得到同构页面。优选地,所述通过Nodejs服务向所述反向代理工具发送页面加载中指令,确定与所述页面访问请求对应的预置脚本,调用Headless执行所述预置脚本完成对原始页面的渲染,得到同构页面具体为:通过Nodejs服务调用Chrome内核访问原始页面,判断所述页面访问请求的业务类型,若为静态业务,则确定与所述页面访问请求对应的预置脚本,调用Headless执行所述预置脚本完成对原始页面的渲染,得到同构页面,若为延迟业务,则在等待相应的延迟时间后,确定与所述页面访问请求对应的预置脚本,调用Headless执行所述预置脚本完成对原始页面的渲染,得到同构页面。优选地,所述预置脚本为JavaScript脚本。优选地,所述通过Nodejs服务向所述反向代理工具发送页面加载中指令,根据预置脚本对原始页面进行渲染,得到同构页面之前还包括:通过Nodejs服务判断所述页面访问请求所请求的页面在redis集群内是否存在缓存,若是,则在所述redis集群读取缓存生成对应的同构页面并发送至所述反向代理工具,若不是,则执行下一步。优选地,所述通过Nodejs服务判断所述页面访问请求所请求的页面在redis集群内是否存在缓存,若是,则在所述redis集群读取缓存生成对应的同构页面,若不是,则执行下一步之前还包括:通过Nodejs服务判断所述页面访问请求所请求的页面域名是否为白名单,若是,则判断所述页面访问请求所请求的页面在redis集群内是否存在缓存,若不是,则向反向代理工具返回拒绝页。优选地,所述通过Nodejs服务向所述反向代理工具发送页面加载完成指令和所述同构页面,以完成爬虫操作和页面显示之后还包括:通过Nodejs服务将所述同构页面储存入redis集群中。根据本专利技术的另一方面,提供一种页面渲染装置,包括:反向代理工具,用于判断获取到的页面访问请求是否为爬虫,若是,则触发Nodejs服务;Nodejs服务,用于向所述反向代理工具发送页面加载中指令,根据预置脚本对原始页面进行渲染,得到同构页面;所述Nodejs服务还用于向所述反向代理工具发送页面加载完成指令和所述同构页面,以完成爬虫操作和页面显示。根据本专利技术的另一方面,提供一种电子设备,包括处理器和存储器,所述存储器上存储有计算机程序指令,当所述程序指令被处理器执行时实现如以上所述的页面渲染方法。根据本专利技术的另一方面,提供一种计算机可读存储介质,所述介质上存储有计算机程序指令,当所述程序指令被处理器执行时实现如以上所述的页面渲染方法。从以上技术方案可以看出,本专利技术实施例具有以下优点:本专利技术提供了一种页面渲染方法及装置,本专利技术以前端为渲染载体,通过Nodejs服务与反向代理工具的结合与引入,在执行爬虫前对原始页面进行提前渲染,使得爬虫能够抓取已经渲染的同构页面,解决传统前端渲染所存在的搜索引擎优化问题(SearchEngineOptimization,SEO)。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。图1为本专利技术提供的一种页面渲染方法的一个实施例的流程示意图;图2为本专利技术提供的一种页面渲染方法的另一个实施例的流程示意图;图3为本专利技术提供的一种页面渲染装置的一个实施例的结构示意图。具体实施方式本专利技术实施例提供了一种页面渲染方法及装置,可以在直出同构页面的同时,完成对同构页面的爬虫。为使得本专利技术的专利技术目的、特征、优点能够更加的明显和易懂,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本专利技术一部分实施例,而非全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本专利技术保护的范围。请参阅图1,本专利技术提供的一种页面渲染方法的一个实施例,包括:101、通过反向代理工具判断获取到的页面访问请求是否为爬虫,若是,则执行102;需要说明的是,本专利技术提供的方法的执行主体为一种页面渲染装置,其可以为一种引擎(包含反向代理工具和Nodejs服务),加载于前端上,当用户访问前端时,且发送页面访问请求,该装置可以通过反向代理工具判断该页面访问请求是正常用户请求还是爬虫请求,若为爬虫请求,则执行下一步。102、通过Nodejs服务向所述反向代理工具发送页面加载中指令,根据预置脚本对原始页面进行渲染,得到同构页面;在确定是需执行爬虫后,则引擎通过Nodejs服务向所述反向代理工具发送页面加载中指令(此时爬虫则不会立即抓取原始页面),然后通过Nodejs服务根据预置脚本对原始页面进行渲染,得到同构页面。需要说明的是,本专利技术提供的装置中,Nodejs服务上开发有多个接口,其中有用于与反向代理工具进行衔接的接口,以便二者进行数据交互。且预置脚本也内置于该引擎中,能够使得本专利技术不需要与后端(服务端)进行交互,在前端独立完成页面直出,即前后端分离。103、通过Nodejs服务向所述反向代理工具发送页面加载完成指令和所述同构页面,以完成爬虫操作和页面显示。在同构页面渲染完成后,引擎通过Nodejs服务向所述反向代理工具发送页面加载完成指令和所述同构页面,此时同构页面的内容可以被爬虫所抓取,同时也可以被浏览器或平台所捕获进行显示。本专利技术以前端为渲染载体,通过Nodejs服务与反向代理工具的结合与引入,在执行爬虫前对原始页面进行提前渲染,使得爬虫能够抓取已经渲染的同构页面,解决传统前端渲染所存在的SEO问题。以上为一种页面渲染方法的一个实施例,为进行更具体的说明,下面提供一种页面渲染方法的另一个实施例,请参阅图本文档来自技高网...

【技术保护点】
1.一种页面渲染方法,其特征在于,包括:通过反向代理工具判断获取到的页面访问请求是否为爬虫,若是,则执行下一步;通过Nodejs服务向所述反向代理工具发送页面加载中指令,根据预置脚本对原始页面进行渲染,得到同构页面;通过Nodejs服务向所述反向代理工具发送页面加载完成指令和所述同构页面,以完成爬虫操作和页面显示。

【技术特征摘要】
1.一种页面渲染方法,其特征在于,包括:通过反向代理工具判断获取到的页面访问请求是否为爬虫,若是,则执行下一步;通过Nodejs服务向所述反向代理工具发送页面加载中指令,根据预置脚本对原始页面进行渲染,得到同构页面;通过Nodejs服务向所述反向代理工具发送页面加载完成指令和所述同构页面,以完成爬虫操作和页面显示。2.根据权利要求1所述的页面渲染方法,其特征在于,所述通过Nodejs服务向所述反向代理工具发送页面加载中指令,根据预置脚本对原始页面进行渲染,得到同构页面具体为:通过Nodejs服务向所述反向代理工具发送页面加载中指令,确定与所述页面访问请求对应的预置脚本,调用Headless执行所述预置脚本完成对原始页面的渲染,得到同构页面。3.根据权利要求2所述的页面渲染方法,其特征在于,所述通过Nodejs服务向所述反向代理工具发送页面加载中指令,确定与所述页面访问请求对应的预置脚本,调用Headless执行所述预置脚本完成对原始页面的渲染,得到同构页面具体为:通过Nodejs服务调用Chrome内核访问原始页面,判断所述页面访问请求的业务类型,若为静态业务,则确定与所述页面访问请求对应的预置脚本,调用Headless执行所述预置脚本完成对原始页面的渲染,得到同构页面,若为延迟业务,则在等待相应的延迟时间后,确定与所述页面访问请求对应的预置脚本,调用Headless执行所述预置脚本完成对原始页面的渲染,得到同构页面。4.根据权利要求3所述的页面渲染方法,其特征在于,所述预置脚本为JavaScript脚本。5.根据权利要求1所述的页面渲染方法,其特征在于,所述通过Nodejs服务向所述反向代理工具发送页面加载中指令,根据预置脚本对原始页面进行渲染,得到同构页面...

【专利技术属性】
技术研发人员:许宏斌
申请(专利权)人:广州华多网络科技有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1