[发明专利]一种页面渲染方法及装置有效
申请号: | 201811612452.X | 申请日: | 2018-12-27 |
公开(公告)号: | CN109656670B | 公开(公告)日: | 2020-11-20 |
发明(设计)人: | 许宏斌 | 申请(专利权)人: | 广州华多网络科技有限公司 |
主分类号: | G06F9/451 | 分类号: | G06F9/451 |
代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 张春水;唐京桥 |
地址: | 511442 广东省广*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 页面 渲染 方法 装置 | ||
本发明提供了一种页面渲染方法及装置,该方法包括:通过反向代理工具判断获取到的页面访问请求是否为爬虫,若是,则执行下一步;通过Nodejs服务向反向代理工具发送页面加载中指令,根据预置脚本对原始页面进行渲染,得到同构页面;通过Nodejs服务向反向代理工具发送页面加载完成指令和同构页面,以完成爬虫操作和页面显示。本发明在执行爬虫前对原始页面进行提前渲染,使得爬虫能够抓取已经渲染的同构页面,解决传统前端渲染所存在的SEO问题。
技术领域
本发明涉及页面渲染技术领域,尤其涉及一种页面渲染方法及装置。
背景技术
随着计算机技术的蓬勃发展,用户与客户端之间的交互也随之增多,用户访问页面的需求量也日益上升。
目前,页面渲染的方式通常有后端渲染和前端渲染两种主要方式,在前端渲染中,前端在捕捉用户的页面访问请求后,通常会从后端获取相应的内容然后对原始页面进行渲染,然而,在对原始页面进行渲染之前,前端会对原始页面进行爬虫即直接抓取原始页面,无法等待前端渲染完成,导致前端渲染完成的页面无法被抓取。
发明内容
本发明实施例提供了一种页面渲染方法及装置,可以在直出同构页面的同时,完成对同构页面的爬虫。
根据本发明的一个方面,提供一种页面渲染方法,包括:
通过反向代理工具判断获取到的页面访问请求是否为爬虫,若是,则执行下一步;
通过Nodejs服务向所述反向代理工具发送页面加载中指令,根据预置脚本对原始页面进行渲染,得到同构页面;
通过Nodejs服务向所述反向代理工具发送页面加载完成指令和所述同构页面,以完成爬虫操作和页面显示。
优选地,所述通过Nodejs服务向所述反向代理工具发送页面加载中指令,根据预置脚本对原始页面进行渲染,得到同构页面具体为:
通过Nodejs服务向所述反向代理工具发送页面加载中指令,确定与所述页面访问请求对应的预置脚本,调用Headless执行所述预置脚本完成对原始页面的渲染,得到同构页面。
优选地,所述通过Nodejs服务向所述反向代理工具发送页面加载中指令,确定与所述页面访问请求对应的预置脚本,调用Headless执行所述预置脚本完成对原始页面的渲染,得到同构页面具体为:
通过Nodejs服务调用Chrome内核访问原始页面,判断所述页面访问请求的业务类型,若为静态业务,则确定与所述页面访问请求对应的预置脚本,调用Headless执行所述预置脚本完成对原始页面的渲染,得到同构页面,若为延迟业务,则在等待相应的延迟时间后,确定与所述页面访问请求对应的预置脚本,调用Headless执行所述预置脚本完成对原始页面的渲染,得到同构页面。
优选地,所述预置脚本为JavaScript脚本。
优选地,所述通过Nodejs服务向所述反向代理工具发送页面加载中指令,根据预置脚本对原始页面进行渲染,得到同构页面之前还包括:
通过Nodejs服务判断所述页面访问请求所请求的页面在redis集群内是否存在缓存,若是,则在所述redis集群读取缓存生成对应的同构页面并发送至所述反向代理工具,若不是,则执行下一步。
优选地,所述通过Nodejs服务判断所述页面访问请求所请求的页面在redis集群内是否存在缓存,若是,则在所述redis集群读取缓存生成对应的同构页面,若不是,则执行下一步之前还包括:
通过Nodejs服务判断所述页面访问请求所请求的页面域名是否为白名单,若是,则判断所述页面访问请求所请求的页面在redis集群内是否存在缓存,若不是,则向反向代理工具返回拒绝页。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于广州华多网络科技有限公司,未经广州华多网络科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811612452.X/2.html,转载请声明来源钻瓜专利网。