掌桥专利:专业的专利平台
掌桥专利
首页

快速生成海报的方法、装置及计算机设备

文献发布时间:2023-06-19 09:30:39


快速生成海报的方法、装置及计算机设备

技术领域

本发明实施例涉及数据处理技术领域,具体涉及一种快速生成海报的方法、装置及计算机设备。

背景技术

目前,现有进行海报绘制的方案中,一般通过前端解析并绘制后使用html2Canvas生成图片,或者后端使用 canvas 生成海报图片返回url给前端。以上两种都存在使用cavas的复杂性问题,第一种还需要兼容不同的浏览器环境。

发明内容

鉴于上述问题,本发明实施例提供了一种快速生成海报的方法,用于解决现有技术中存在的海报生成过程复杂及不兼容的问题。

根据本发明实施例的一个方面,提供了一种快速生成海报的方法,所述方法基于一访问设备,所述访问设备包括一个负载服务器和多个节点服务器,所述负载服务器与各个所述节点服务器分别建立通信连接,每一个所述节点服务器设置在一台主机上且与所述主机上的谷歌无头浏览器建立通信连接,所述方法包括:

获取海报分享请求,所述海报分享请求中携带有楼盘信息及经纪人信息;

根据所述楼盘信息确定目标海报模板,并根据所述目标海报模板及所述经纪人信息,生成目标html海报页面;所述目标海报模板为html海报模板;

生成对所述目标html海报页面的截图请求;其中,所述截图请求中包括所述目标html海报页面的目标网络地址及截图质量需求信息;

通过负载服务器将所述截图请求发送给目标节点服务器;所述目标节点服务器为通过所述负载服务器从所述多个节点服务器中确定的任意一个空闲的节点服务器;

获取所述目标节点服务器对应的主机的本地IP地址和本地端口信息,根据所述本地IP地址、所述本地端口信息及所述截图请求生成截图服务请求;

通过所述目标节点服务器将所述截图服务请求发送给目标浏览器,以使所述目标浏览器对所述截图服务请求进行验证;所述目标浏览器为所述目标节点服务器对应的谷歌无头浏览器;

当验证通过时,获取所述目标浏览器返回的所述截图服务请求对应的截图服务信息;

根据所述截图服务信息访问所述目标浏览器,以使所述目标浏览器根据所述截图请求对所述目标html海报页面进行截图操作;

根据所述截图操作,得到海报图片。

在一种可选的方式中,根据所述楼盘信息确定目标海报模板,并根据所述目标海报模板及所述经纪人信息,生成目标html海报页面;所述目标海报模板为html海报模板,包括:

获取所述目标海报模板对应目标模板网络地址;

根据所述目标模板网络地址打开所述目标海报模板;

根据所述目标模板网络地址生成所述目标html海报页面的目标网络地址;

根据所述目标海报模板及所述经纪人信息,在所述目标网络地址中生成目标html海报页面。

在一种可选的方式中,所述截图请求中还包括通信协议信息,所述截图服务请求包括Host请求头信息,所述Host请求头信息中包括请求服务器端口信息、请求服务器IP地址;

所述获取所述目标节点服务器对应的主机的本地IP地址和本地端口信息,根据所述本地IP地址、所述本地端口信息及所述截图请求生成截图服务请求,进一步包括:

通过所述目标节点服务器将所述请求服务器端口信息设置为所述本地端口信息,将所述请求服务器IP地址设置为所述本地IP地址;

通过所述目标节点服务器根据所述通信协议信息和所述Host请求头信息生成所述截图服务请求。

在一种可选的方式中,所述通过负载服务器将所述截图请求发送给目标节点服务器之前,进一步包括:

分别获取各个所述节点服务器的服务端口信息;

根据所述服务端口信息对所述负载服务器进行配置,以使得所述负载服务器与各个所述节点服务器分别建立通信连接。

在一种可选的方式中,所述从所述多个节点服务器中确定一个目标节点服务器,将所述谷歌无头服务请求信息发送给所述目标节点服务器,进一步包括:

通过所述负载服务器按照预设的负载均衡策略确定所述目标节点服务器。

根据本发明实施例的另一方面,提供了一种快速生成海报的装置,包括:

请求获取模块,用于获取海报分享请求,所述海报分享请求中携带有楼盘信息及经纪人信息;

海报生成模块,用于根据所述楼盘信息确定目标海报模板,并根据所述目标海报模板及所述经纪人信息,生成目标html海报页面;所述目标海报模板为html海报模板;

截图请求模块,用于生成对所述目标html海报页面的截图请求;其中,所述截图请求中包括所述目标html海报页面的目标网络地址及截图质量需求信息;

节点确定模块,用于通过负载服务器将所述截图请求发送给目标节点服务器;所述目标节点服务器为通过所述负载服务器从所述多个节点服务器中确定的任意一个空闲的节点服务器;

请求生成模块,用于获取所述目标节点服务器对应的主机的本地IP地址和本地端口信息,根据所述本地IP地址、所述本地端口信息及所述截图请求生成截图服务请求;

验证模块,用于通过所述目标节点服务器将所述截图服务请求发送给目标浏览器,以使所述目标浏览器对所述截图服务请求进行验证;所述目标浏览器为所述目标节点服务器对应的谷歌无头浏览器;

服务信息获取模块,用于当验证通过时,获取所述目标浏览器返回的所述截图服务请求对应的截图服务信息;

截图模块,用于根据所述截图服务信息访问所述目标浏览器,以使所述目标浏览器根据所述截图请求对所述目标html海报页面进行截图操作;

海报图片模块,用于根据所述截图操作,得到海报图片。

在一种可选的方式中,海报生成模块根据所述楼盘信息确定目标海报模板,并根据所述目标海报模板及所述经纪人信息,生成目标html海报页面;所述目标海报模板为html海报模板,包括:

获取所述目标海报模板对应目标模板网络地址;

根据所述目标模板网络地址打开所述目标海报模板;

根据所述目标模板网络地址生成所述目标html海报页面的目标网络地址;

根据所述目标海报模板及所述经纪人信息,在所述目标网络地址中生成目标html海报页面。

在一种可选的方式中,所述截图请求中还包括通信协议信息,所述截图服务请求包括Host请求头信息,所述Host请求头信息中包括请求服务器端口信息、请求服务器IP地址;

请求生成模块获取所述目标节点服务器对应的主机的本地IP地址和本地端口信息,根据所述本地IP地址、所述本地端口信息及所述截图请求生成截图服务请求,进一步包括:

通过所述目标节点服务器将所述请求服务器端口信息设置为所述本地端口信息,将所述请求服务器IP地址设置为所述本地IP地址;

通过所述目标节点服务器根据所述通信协议信息和所述Host请求头信息生成所述截图服务请求。

根据本发明实施例的另一方面,提供了一种计算机设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;

所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行上述的快速生成海报的方法的操作。

根据本发明实施例的又一方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令在快速生成海报的设备上运行时,使得快速生成海报的设备执行如上述的快速生成海报的方法的操作。

本发明实施例通过获取经纪人的海报生成请求,并通过设置负载服务器及多个节点服务器来远程访问谷歌无头浏览器,从而实现通过无头浏览器生成海报,能够提高海报生成效率及海报的精度,并且通过这样的设置,可以兼容多种类型的浏览器。

上述说明仅是本发明实施例技术方案的概述,为了能够更清楚了解本发明实施例的技术手段,而可依照说明书的内容予以实施,并且为了让本发明实施例的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。

附图说明

附图仅用于示出实施方式,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:

图1示出了本发明实施例提供的快速生成海报的方法的流程示意图;

图2示出了本发明实施例提供的快速生成海报的装置的结构示意图;

图3示出了本发明实施例提供的计算机设备的结构示意图。

具体实施方式

下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。

图1示出了本发明快速生成海报的方法实施例的流程图,该方法由计算机设备执行,应用于计算机设备的截图应用中。该计算机设备可以是一访问设备。该访问设备包括一个负载服务器和多个节点服务器,所述负载服务器与各个所述节点服务器分别建立通信连接,每一个所述节点服务器设置在一台主机上且与所述主机上的谷歌无头浏览器建立通信连接。通过该访问设备是建立客户端海报制作及所述谷歌无头浏览器之间信息交互。本发明实施例的快速生成海报的方法是根据谷歌无头浏览器实现的。如图1所示,该方法包括以下步骤:

步骤110:获取海报分享请求,所述海报分享请求中携带有楼盘信息及经纪人信息。

其中,在获取海报分享请求之前,响应于经纪人通过客户端页面点击分享按钮的触发操作,生成海报分享请求。其中,客户端页面可以为小程序页面、应用程序页面及web端页面。该页面可以是楼房详情页或房屋展示列表。示例性的,在该楼房详情页或房屋展示列表中可以存在一个分享按钮。

本发明实施例中,在用户点击分享按钮后,生成一个海报分享请求,该海报分享请求中包括该页面对应的楼盘信息以及对应的经纪人信息。该经纪人信息包括经纪人ID、经纪人头像、经纪人二维码信息及经纪人联系方式等信息。其中,经纪人ID、经纪人头像、经纪人二维码信息及经纪人联系方式等信息可以从客户端预存的经纪人账号中获取。

步骤120:根据所述楼盘信息确定目标海报模板,并根据所述目标海报模板及所述经纪人信息,生成目标html海报页面;所述目标海报模板为html海报模板。

其中,本发明实施例中,目标海报模板为html海报模板,每个html海报模板对应一个目标模板网络地址。其中,目标海报模板与楼盘信息关联存储。步骤120进一步包括:

获取所述目标海报模板对应目标模板网络地址;

根据所述目标模板网络地址打开所述目标海报模板;

根据所述目标模板网络地址生成所述目标html海报页面的目标网络地址;将所述目标网络地址与所述经纪人ID关联存储;

根据所述目标海报模板及所述经纪人信息,在所述目标网络地址中生成目标html海报页面。

步骤130:生成对所述目标html海报页面的截图请求;其中,所述截图请求中包括所述目标html海报页面的目标网络地址及截图质量需求信息。

其中,当确定生成目标html海报页面后,生成对该目标html海报页面的截图请求。

本发明实施例中,可以预先为每一个海报模板配置对应的截图质量需求信息。该截图质量需求信息包括尺寸信息、像素信息等。

步骤140:通过负载服务器将所述截图请求发送给目标节点服务器;所述目标节点服务器为通过所述负载服务器从所述多个节点服务器中确定的任意一个空闲的节点服务器。

本发明实施例的快速生成海报的方法根据谷歌无头浏览器实现。由于是html绘制的海报,因此将其对应的网络地址(也即页面url)以及截图质量需求信息发送给谷歌无头浏览器中的截图服务进行截图即可。具体地可以通过谷歌无头浏览器的Puppeteer截图服务即可实现截图。然而,考虑到不同需求种类的应用层需要分别和谷歌无头浏览器一起进行安装编译,从而实现在该特定类型的应用层上可以调用谷歌无头浏览器的服务。这样每需要实现一个新功能,就需要将一个谷歌无头浏览器安装到对应功能的应用层上,但是由于应用层的数据包体积较大,每次安装谷歌无头浏览器后对应用层重新进行编译的时间成本以及计算资源成本都较大。这样就导致了现有技术中应用层对谷歌无头浏览器进行访问时的效率较低。因此,本发明实施例的快速生成海报的方法将谷歌无头浏览器设置在若干台主机上,每台主机对应一个谷歌无头浏览器和一个节点服务器,通过设置负载服务器访问每个节点服务器,实现与无头浏览器的通信。通过这样的方式,在开发时,不必每台主机都安装谷歌无头浏览器,从而提高了工作效率。

其中,在将截图请求通过负载服务器转发到对应的目标节点服务器之前,首先需要对负载服务器进行配置,从而使得负载服务器与多个节点服务器建立通信,在本发明的一个实施例中,还包括以下步骤1401-1402。

步骤1401:分别获取各个所述节点服务器的服务端口信息。

服务端口信息是各个节点服务器对外暴露的监听端口,不同的节点服务器的服务端口信息不同,各个节点服务器会对来自服务端口的消息进行监听,从而对外部发送到该服务端口的信息进行处理。在本发明的一个实施例中,一个节点服务器的服务端口信息可以是端口号为9222。

步骤1402:根据所述服务端口信息对所述负载服务器进行配置,以使得所述负载服务器与各个所述节点服务器分别建立通信连接。

对负载服务器进行配置的过程为:将各个节点服务器的对外监听的服务端口信息写入负载服务器的转发模块的配置文件中。在本发明的一个实施例中,负载服务器可以是Nginx、docker等其他具有负载功能的代理服务器。在负载服务器的类型为Nginx时,具体的转发模块可以是upstream模块。

考虑到可能存在目标应用层在一段时间内发送了多个截图请求,为了及时对各个截图请求进行处理,避免截图请求应答的时间过长或者节点服务器因代理负荷大于处理能力而崩溃,在本发明的一个实施例中,可以进一步通过在负载服务器上进行负载均衡的策略设置,以均衡调度转发到各个节点服务器上的截图请求。

在本发明的一个实施例中,从与负载服务器建立起连接的多个节点服务器中确定一个节点服务器作为目标节点服务器的过程,可以是通过所述负载服务器按照预设的负载均衡策略确定所述目标节点服务器。

具体的负载均衡策略可以包括如下:一、轮询法:将截图请求按接收到的时间顺序轮流地转发到各个节点服务器上。二、加权轮询法:根据各个节点服务器的当前负载情况和系统配置情况确定各个节点服务器对应的权重值。在加权轮询时即根据负载服务器接收到截图请求的时间顺序以及各个节点服务器的权重值的降序依次将截图请求分配到各个节点服务器上。三、最小连接数法:根据各个节点服务器当前的连接情况,动态地选取其中当前等待连接数最少的一台节点服务器作为目标节点服务器来处理当前的截图请求。将上述负载策略写入负载服务器的转发模块的配置文件中。

步骤150:获取所述目标节点服务器对应的主机的本地IP地址和本地端口信息,根据所述本地IP地址、所述本地端口信息及所述截图请求生成截图服务请求。

本发明实施例中,由于谷歌无头浏览器的操作通信协议是DevTools协议,DevTools协议是一种调试协议,只允许本机IP地址和本机端口的请求对谷歌无头浏览器进行操作,一个谷歌无头浏览器对应的主机对应一个本地端口和一或多个IP地址。为了使得各个节点服务器可以将来自负载服务器的截图服务请求发送到与该节点服务器对应的浏览器对应的主机上,首先需要将各个节点服务器分别安装到一个谷歌无头浏览器对应的主机上,并且对各个节点服务器进行设置,从而在节点服务器与其对应的谷歌无头浏览器对应的主机之间建立通信连接。

因此,在通过前述目标节点服务器将所述截图服务请求发送给谷歌无头浏览器之前还需要将目标节点服务器,还包括步骤1501-步骤1502。

步骤1501:在每一个所述谷歌无头浏览器对应的主机上安装一个所述节点服务器。

将节点服务器和谷歌无头浏览器安装到同一台主机上,使得在本发明的一个实施例中,节点服务器可以是Nginx、Squid以及Varnish等具有反向代理功能的代理服务器。

步骤1502:分别对各个所述节点服务器进行配置,以使得每一个所述节点服务器分别与对应的主机上的所述谷歌无头浏览器建立通信连接。

对节点服务器进行配置的过程包括首先设置本机服务器的IP地址和端口,

并在节点服务器的server模块的配置文件中利用代理地址设置命令(如proxy_pass命令)将代理所转到的地址设置为本机谷歌无头浏览器对应的主机的本机IP地址与本机端口。

在对节点服务器配置完成之后,启动节点服务器的服务,这样在各个节点服务器分别与其所设置在的主机上的谷歌无头浏览器之间建立起了通信连接。

由此区别于现有技术中采用的对谷歌无头浏览器的资源的访问不经过代理,直接进行访问,使得每次应用层有变化和修改时需要重新与谷歌无头浏览器进行绑定安装与编译的技术方案,本发明实施例通过节点服务器将负载服务器的访问请求代理到节点服务器所在的主机上的谷歌无头浏览器,从而只需要通过负载服务器与节点服务器建立了连接的负载服务器进行通信即可,与谷歌无头浏览器对应的主机进行通信的过程由节点服务器和负载服务器来完成,不随着截图应用的其他业务部分的逻辑变化而更改,实现了截图应用层与谷歌无头浏览器访问功能的解耦。与此同时,基于负载服务器的负载均衡功能以及多台节点服务器,提高了谷歌无头浏览器的远程访问效率。

本发明实施例中,所述截图请求中还包括通信协议信息,所述截图服务请求包括Host请求头信息,所述Host请求头信息中包括请求服务器端口信息、请求服务器IP地址;

所述获取所述目标节点服务器对应的主机的本地IP地址和本地端口信息,根据所述本地IP地址、所述本地端口信息及所述截图请求生成截图服务请求,进一步包括以下步骤:

步骤1510:通过所述目标节点服务器将所述请求服务器端口信息设置为所述本地端口信息,将所述请求服务器IP地址设置为所述本地IP地址;在本发明的一个实施例中,首先在目标节点服务器的server配置文件中定义一条Host请求头的设置语句,该Host请求头的设置语句如下:

proxy_set_header Host $server_addr$port。

其中,$server_addr变量表示本机服务器IP地址,$port变量表示本机服务器端口信息。

首先获取本地IP地址和本地端口信息,然后将上述设置语句写入目标节点服务器的server模块的配置文件中,从而将Host请求头中的发送服务请求的请求服务器端口设置为Chromium浏览器对应的主机的本地端口信息,将发送服务请求中的请求服务器IP地址设置为Chromium浏览器对应的主机的本机IP地址。

在本发明的一个实施例中,对目标节点服务器配置可以包括如下方面:首先设置目标节点服务器的监听端口,然后设置目标节点服务器对应的主机的本地端口,设置代理过程中的http通讯协议版本,设置Host请求头信息,以及设置代理到的目标地址。

具体的设置Host请求头可以是在目标节点服务器的配置文件中写入proxy_set_header Host $server_addr$port语句,以此将所述Host请求头设置为目标浏览器所对应的主机的本地端口信息和该主机的本地IP地址的组合,意即使得目标浏览器所识别的Chromium请求发送者的地址是本地端口信息加上本地IP地址。

设置代理到的目标地址可以是在目标服务器的配置文件中写入proxy_passhttp://127.0.0.1:9221语句,以此将请求代理转发到http://127.0.0.1:9221(即目标节点服务器所在的Chromium浏览器对应的主机的本机IP地址加上本机端口地址)上进行处理。

步骤1511:通过所述目标节点服务器根据所述通信协议信息和所述Host请求头信息生成所述截图服务请求。

步骤160:通过所述目标节点服务器将所述截图服务请求发送给目标浏览器,以使所述目标浏览器对所述截图服务请求进行验证;所述目标浏览器为所述目标节点服务器对应的谷歌无头浏览器。

其中,目标浏览器根据对截图服务请求中通信协议信息和所述Host请求头信息对截图服务请求进行验证。

步骤170:当验证通过时,获取所述目标浏览器返回的所述截图服务请求对应的截图服务信息。

在本发明的一个实施例中,所述截图服务信息中包括目标访问链接,所述目标访问链接用于提供一个目标访问接口,该目标访问接口可以是Puppeteer截图服务的接口,获取到的目标服务信息可以包括如下方面:浏览器信息如"Browser": "HeadlessChrome/85.0.4183.121",为HeadlessChrome即谷歌无头浏览器。通信协议版本信息如"Protocol-Version": "1.3",以及目标服务链接如:

"webSocketDebuggerUrl": "ws://192.168.1.45:9221/DevTools/browser/edeb113e-70e3-45a6-bad7-a50d66cceef9"。

基于谷歌无头浏览器的服务机制,上述目标服务链接的通信协议类型为Websocket类型,在WebSocket通讯协议中,浏览器服务器和客户端只需要完成一次握手,两者之间就直接可以创建连接,并进行双向数据传输。该目标访问链接对应于一个目标访问接口,目标应用层可以在该目标访问接口上基于Chromium浏览器所认可的调试协议如DevTools协议对Chromium浏览器对应的主机提供的资源进行访问,其中目标访问接口可以是一个预先进行了配置的基于DevTool协议客户端。

步骤180:根据所述截图服务信息访问所述目标浏览器,以使所述目标浏览器根据所述截图请求对所述目标html海报页面进行截图操作。

其中,根据所述截图请求以及截图服务信息,向谷歌无头浏览器发送打开所述目标网络地址的请求,以及当谷歌无头浏览器根据目标网络地址打开目标html海报页面后,指示所述谷歌无头浏览器的Puppeteer截图服务进行截图操作。

步骤190:根据所述截图操作,得到海报图片。

其中,所述目标浏览器根据所述截图请求对所述目标html海报页面进行截图操作后,得到的为海报图片的base64信息。根据该base64信息解析得到海报图片。

在得到所述海报图片后,将所述海报图片发送给客户端对应的经纪人ID,以使所述经纪人可以根据该海报图片进行分享操作。

本发明实施例通过获取经纪人的海报生成请求,并通过设置负载服务器及多个节点服务器来远程访问谷歌无头浏览器,从而实现通过无头浏览器生成海报,能够提高海报生成效率及海报的精度,并且通过这样的设置,可以兼容多种类型的浏览器。

图2示出了本发明快速生成海报的装置实施例的结构示意图。本发明实施例的快速生成海报的装置200具体工作过程与上述方法实施例的具体方法步骤相同,此处不再赘述。如图2所示,该装置200包括:

请求获取模块210,用于获取海报分享请求,所述海报分享请求中携带有楼盘信息及经纪人信息;

海报生成模块220,用于根据所述楼盘信息确定目标海报模板,并根据所述目标海报模板及所述经纪人信息,生成目标html海报页面;所述目标海报模板为html海报模板;

截图请求模块230,用于生成对所述目标html海报页面的截图请求;其中,所述截图请求中包括所述目标html海报页面的目标网络地址及截图质量需求信息;

节点确定模块240,用于通过负载服务器将所述截图请求发送给目标节点服务器;所述目标节点服务器为通过所述负载服务器从所述多个节点服务器中确定的任意一个空闲的节点服务器;

请求生成模块250,用于获取所述目标节点服务器对应的主机的本地IP地址和本地端口信息,根据所述本地IP地址、所述本地端口信息及所述截图请求生成截图服务请求;

验证模块260,用于通过所述目标节点服务器将所述截图服务请求发送给目标浏览器,以使所述目标浏览器对所述截图服务请求进行验证;所述目标浏览器为所述目标节点服务器对应的谷歌无头浏览器;

服务信息获取模块270,用于当验证通过时,获取所述目标浏览器返回的所述截图服务请求对应的截图服务信息;

截图模块280,用于根据所述截图服务信息访问所述目标浏览器,以使所述目标浏览器根据所述截图请求对所述目标html海报页面进行截图操作;

海报图片模块290,用于根据所述截图操作,得到海报图片。

在一种可选的方式中,根据所述楼盘信息确定目标海报模板,并根据所述目标海报模板及所述经纪人信息,生成目标html海报页面;所述目标海报模板为html海报模板,包括:

获取所述目标海报模板对应目标模板网络地址;

根据所述目标模板网络地址打开所述目标海报模板;

根据所述目标模板网络地址生成所述目标html海报页面的目标网络地址;

根据所述目标海报模板及所述经纪人信息,在所述目标网络地址中生成目标html海报页面。

在一种可选的方式中,所述截图请求中还包括通信协议信息,所述截图服务请求包括Host请求头信息,所述Host请求头信息中包括请求服务器端口信息、请求服务器IP地址;

所述获取所述目标节点服务器对应的主机的本地IP地址和本地端口信息,根据所述本地IP地址、所述本地端口信息及所述截图请求生成截图服务请求,进一步包括:

通过所述目标节点服务器将所述请求服务器端口信息设置为所述本地端口信息,将所述请求服务器IP地址设置为所述本地IP地址;

通过所述目标节点服务器根据所述通信协议信息和所述Host请求头信息生成所述截图服务请求。

在一种可选的方式中,所述通过负载服务器将所述截图请求发送给目标节点服务器之前,进一步包括:

分别获取各个所述节点服务器的服务端口信息;

根据所述服务端口信息对所述负载服务器进行配置,以使得所述负载服务器与各个所述节点服务器分别建立通信连接。

在一种可选的方式中,所述从所述多个节点服务器中确定一个目标节点服务器,将所述谷歌无头服务请求信息发送给所述目标节点服务器,进一步包括:

通过所述负载服务器按照预设的负载均衡策略确定所述目标节点服务器。

本发明实施例通过获取经纪人的海报生成请求,并通过设置负载服务器及多个节点服务器来远程访问谷歌无头浏览器,从而实现通过无头浏览器生成海报,能够提高海报生成效率及海报的精度,并且通过这样的设置,可以兼容多种类型的浏览器。

图3示出了本发明计算机设备实施例的结构示意图,本发明具体实施例并不对计算机设备的具体实现做限定。

如图3所示,该计算机设备可以包括:处理器(processor)302、通信接口(Communications Interface)304、存储器(memory)306、以及通信总线308。

其中:处理器302、通信接口304、以及存储器306通过通信总线308完成相互间的通信。通信接口304,用于与其它设备比如客户端或其它服务器等的网元通信。处理器302,用于执行程序310,具体可以执行上述用于快速生成海报的方法实施例中的相关步骤。

具体地,程序310可以包括程序代码,该程序代码包括计算机可执行指令。

处理器302可能是中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。计算机设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个CPU;也可以是不同类型的处理器,如一个或多个CPU以及一个或多个ASIC。

存储器306,用于存放程序310。存储器306可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。

程序310具体可以被处理器302调用使计算机设备执行以下操作:

获取海报分享请求,所述海报分享请求中携带有楼盘信息及经纪人信息;

根据所述楼盘信息确定目标海报模板,并根据所述目标海报模板及所述经纪人信息,生成目标html海报页面;所述目标海报模板为html海报模板;

生成对所述目标html海报页面的截图请求;其中,所述截图请求中包括所述目标html海报页面的目标网络地址及截图质量需求信息;

通过负载服务器将所述截图请求发送给目标节点服务器;所述目标节点服务器为通过所述负载服务器从所述多个节点服务器中确定的任意一个空闲的节点服务器;

获取所述目标节点服务器对应的主机的本地IP地址和本地端口信息,根据所述本地IP地址、所述本地端口信息及所述截图请求生成截图服务请求;

通过所述目标节点服务器将所述截图服务请求发送给目标浏览器,以使所述目标浏览器对所述截图服务请求进行验证;所述目标浏览器为所述目标节点服务器对应的谷歌无头浏览器;

当验证通过时,获取所述目标浏览器返回的所述截图服务请求对应的截图服务信息;

根据所述截图服务信息访问所述目标浏览器,以使所述目标浏览器根据所述截图请求对所述目标html海报页面进行截图操作;

根据所述截图操作,得到海报图片。

在一种可选的方式中,根据所述楼盘信息确定目标海报模板,并根据所述目标海报模板及所述经纪人信息,生成目标html海报页面;所述目标海报模板为html海报模板,包括:

获取所述目标海报模板对应目标模板网络地址;

根据所述目标模板网络地址打开所述目标海报模板;

根据所述目标模板网络地址生成所述目标html海报页面的目标网络地址;

根据所述目标海报模板及所述经纪人信息,在所述目标网络地址中生成目标html海报页面。

在一种可选的方式中,所述截图请求中还包括通信协议信息,所述截图服务请求包括Host请求头信息,所述Host请求头信息中包括请求服务器端口信息、请求服务器IP地址;

所述获取所述目标节点服务器对应的主机的本地IP地址和本地端口信息,根据所述本地IP地址、所述本地端口信息及所述截图请求生成截图服务请求,进一步包括:

通过所述目标节点服务器将所述请求服务器端口信息设置为所述本地端口信息,将所述请求服务器IP地址设置为所述本地IP地址;

通过所述目标节点服务器根据所述通信协议信息和所述Host请求头信息生成所述截图服务请求。

在一种可选的方式中,所述通过负载服务器将所述截图请求发送给目标节点服务器之前,进一步包括:

分别获取各个所述节点服务器的服务端口信息;

根据所述服务端口信息对所述负载服务器进行配置,以使得所述负载服务器与各个所述节点服务器分别建立通信连接。

在一种可选的方式中,所述从所述多个节点服务器中确定一个目标节点服务器,将所述谷歌无头服务请求信息发送给所述目标节点服务器,进一步包括:

通过所述负载服务器按照预设的负载均衡策略确定所述目标节点服务器。

本发明实施例通过获取经纪人的海报生成请求,并通过设置负载服务器及多个节点服务器来远程访问谷歌无头浏览器,从而实现通过无头浏览器生成海报,能够提高海报生成效率及海报的精度,并且通过这样的设置,可以兼容多种类型的浏览器。

本发明实施例提供了一种计算机可读存储介质,所述存储介质存储有至少一可执行指令,该可执行指令在计算机设备上运行时,使得所述计算机设备执行上述任意方法实施例中的快速生成海报的方法。

可执行指令具体可以用于使得计算机设备执行以下操作:

获取海报分享请求,所述海报分享请求中携带有楼盘信息及经纪人信息;

根据所述楼盘信息确定目标海报模板,并根据所述目标海报模板及所述经纪人信息,生成目标html海报页面;所述目标海报模板为html海报模板;

生成对所述目标html海报页面的截图请求;其中,所述截图请求中包括所述目标html海报页面的目标网络地址及截图质量需求信息;

通过负载服务器将所述截图请求发送给目标节点服务器;所述目标节点服务器为通过所述负载服务器从所述多个节点服务器中确定的任意一个空闲的节点服务器;

获取所述目标节点服务器对应的主机的本地IP地址和本地端口信息,根据所述本地IP地址、所述本地端口信息及所述截图请求生成截图服务请求;

通过所述目标节点服务器将所述截图服务请求发送给目标浏览器,以使所述目标浏览器对所述截图服务请求进行验证;所述目标浏览器为所述目标节点服务器对应的谷歌无头浏览器;

当验证通过时,获取所述目标浏览器返回的所述截图服务请求对应的截图服务信息;

根据所述截图服务信息访问所述目标浏览器,以使所述目标浏览器根据所述截图请求对所述目标html海报页面进行截图操作;

根据所述截图操作,得到海报图片。

在一种可选的方式中,根据所述楼盘信息确定目标海报模板,并根据所述目标海报模板及所述经纪人信息,生成目标html海报页面;所述目标海报模板为html海报模板,包括:

获取所述目标海报模板对应目标模板网络地址;

根据所述目标模板网络地址打开所述目标海报模板;

根据所述目标模板网络地址生成所述目标html海报页面的目标网络地址;

根据所述目标海报模板及所述经纪人信息,在所述目标网络地址中生成目标html海报页面。

在一种可选的方式中,所述截图请求中还包括通信协议信息,所述截图服务请求包括Host请求头信息,所述Host请求头信息中包括请求服务器端口信息、请求服务器IP地址;

所述获取所述目标节点服务器对应的主机的本地IP地址和本地端口信息,根据所述本地IP地址、所述本地端口信息及所述截图请求生成截图服务请求,进一步包括:

通过所述目标节点服务器将所述请求服务器端口信息设置为所述本地端口信息,将所述请求服务器IP地址设置为所述本地IP地址;

通过所述目标节点服务器根据所述通信协议信息和所述Host请求头信息生成所述截图服务请求。

在一种可选的方式中,所述通过负载服务器将所述截图请求发送给目标节点服务器之前,进一步包括:

分别获取各个所述节点服务器的服务端口信息;

根据所述服务端口信息对所述负载服务器进行配置,以使得所述负载服务器与各个所述节点服务器分别建立通信连接。

在一种可选的方式中,所述从所述多个节点服务器中确定一个目标节点服务器,将所述谷歌无头服务请求信息发送给所述目标节点服务器,进一步包括:

通过所述负载服务器按照预设的负载均衡策略确定所述目标节点服务器。

本发明实施例通过获取经纪人的海报生成请求,并通过设置负载服务器及多个节点服务器来远程访问谷歌无头浏览器,从而实现通过无头浏览器生成海报,能够提高海报生成效率及海报的精度,并且通过这样的设置,可以兼容多种类型的浏览器。

本发明实施例提供一种快速生成海报的装置,用于执行上述快速生成海报的方法。

本发明实施例提供了一种计算机程序,所述计算机程序可被处理器调用使上述计算机设备执行上述任意方法实施例中的快速生成海报的方法。

本发明实施例提供了一种计算机程序产品,计算机程序产品包括存储在计算机可读存储介质上的计算机程序,计算机程序包括程序指令,当程序指令在计算机上运行时,使得所述计算机执行上述任意方法实施例中的快速生成海报的方法。

在此提供的算法或显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明实施例也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。

在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。

类似地,应当理解,为了精简本发明并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明实施例的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。

本领域技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。

应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。上述实施例中的步骤,除有特殊说明外,不应理解为对执行顺序的限定。

相关技术
  • 快速生成海报的方法、装置及计算机设备
  • 遥控注入数据快速生成方法、装置、计算机设备及介质
技术分类

06120112195744