八月瓜首页 > 专利查询 > G06计算;推算;计数 >正文

搜索引擎优化方法、装置、终端及存储介质

基本信息

  • 申请号 CN202010600388.4 
  • 公开号 CN111475764A 
  • 申请日 2020/06/29 
  • 公开日 2020/07/31 
  • 申请人 平安国际智慧城市科技股份有限公司  
  • 优先权日期  
  • 发明人 陈锦彬  
  • 主分类号 G06F16/958 
  • 申请人地址 518000 广东省深圳市前海深港合作区妈湾兴海大道3048号前海自贸大厦1-34层 
  • 分类号 G06F16/958;G06F16/951;G06F16/953 
  • 专利代理机构 深圳市赛恩倍吉知识产权代理有限公司 44334 
  • 当前专利状态 发明专利申请公布 
  • 代理人 刘丽华 
  • 有效性 审查中-实审 
  • 法律状态 审查中-实审
  •  

摘要

本发明涉及数据采集技术领域,提供一种搜索引擎优化方法、装置、终端及存储介质,包括:在服务器中配置Nginx代理并启动Node服务;接收访问请求并将所述访问请求发送到所述Node服务的端口;通过所述Node服务判断所述访问请求是否来自于爬虫蜘蛛及通过所述Node服务根据所述访问请求判断访问的目标页面是否需要进行搜索引擎优化处理;当确定所述访问请求来自于爬虫蜘蛛及确定所述访问的目标页面需要进行搜索引擎优化处理时,通过所述Node服务开启无头浏览器,并通过所述无头浏览器访问所述目标页面;通过所述Node服务将所述目标页面返回给搜索引擎。
本发明能够在不进行任何更改的情况下添加SEO操作,实现了学习零成本以及代码零更改,大大提高了开发效率和开发体验。
展开

权利要求书


1.一种搜索引擎优化方法,其特征在于,所述搜索引擎优化方法包括:在服务器中配置Nginx代理并启动Node服务;接收访问请求并将所述访问请求发送到所述Node服务的端口;通过所述Node服务判断所述访问请求是否来自于爬虫蜘蛛及通过所述Node服务根据所述访问请求判断访问的目标页面是否需要进行搜索引擎优化处理;当确定所述访问请求来自于爬虫蜘蛛及确定所述访问的目标页面需要进行搜索引擎优化处理时,通过所述Node服务开启无头浏览器,并通过所述无头浏览器访问所述目标页面;通过所述Node服务将所述目标页面返回给搜索引擎。
2.如权利要求1所述的搜索引擎优化方法,其特征在于,所述在服务器中配置Nginx代理并启动Node服务之前,所述方法还包括:创建Node服务并为所述Node服务配置第一路径和第二路径;在所述Node服务中安装无头浏览器;获取与所述无头浏览器对应的多个操作方法;封装所述多个操作方法在所述Node服务中。
3.如权利要求2所述的搜索引擎优化方法,其特征在于,所述通过所述Node服务判断所述访问请求是否来自于爬虫蜘蛛包括:通过所述Node服务解析所述访问请求的用户代理;匹配所述用户代理与预设数据库中的多个爬虫标识;当从所述预设数据库中匹配出与所述用户代理相同的爬虫标识时,确定所述访问请求来自于爬虫蜘蛛;当没有从所述预设数据库中匹配出与所述用户代理相同的爬虫标识时,确定所述访问请求来自于用户。
4.如权利要求2所述的搜索引擎优化方法,其特征在于,所述通过所述Node服务根据所述访问请求判断访问的目标页面是否需要进行搜索引擎优化处理包括:通过所述Node服务解析所述访问请求的请求路径;根据所述请求路径确定所述访问请求的请求类型;判断所述请求类型是否为目标请求类型;当所述请求类型为所述目标请求类型时,确定访问的目标页面需要进行搜索引擎优化处理。
5.如权利要求2所述的搜索引擎优化方法,其特征在于,所述通过所述无头浏览器访问所述目标页面包括:获取所述爬虫蜘蛛要访问的网站目录;确定所述Node服务的第二路径;调用所述无头浏览器模拟访问所述第二路径中的所述网站目录;调用所述无头浏览器对所述网站目录中的内容进行渲染得到目标页面;通过所述Node服务获取所述目标页面。
6.如权利要求5所述的搜索引擎优化方法,其特征在于,所述方法还包括:当通过所述Node服务确定所述访问的目标页面不需要进行搜索引擎优化处理时,通过所述Node服务获取所述第二路径中的网站目录并返回给所述搜索引擎。
7.如权利要求1至6中任意一项所述的搜索引擎优化方法,其特征在于,所述方法还包括:判断所述访问请求是否为首次访问请求;当所述访问请求不为首次访问请求时,通过所述Node服务从缓存中命中与所述访问请求对应的目标页面;当所述访问请求为首次访问请求时,将所述访问请求发送到所述Node服务的端口。
8.一种搜索引擎优化装置,其特征在于,所述搜索引擎优化装置包括:配置模块,用于在服务器中配置Nginx代理并启动Node服务;接收模块,用于接收访问请求并将所述访问请求发送到所述Node服务的端口;判断模块,用于通过所述Node服务判断所述访问请求是否来自于爬虫蜘蛛及通过所述Node服务根据所述访问请求判断访问的目标页面是否需要进行搜索引擎优化处理;访问模块,用于当确定所述访问请求来自于爬虫蜘蛛及确定所述访问的目标页面需要进行搜索引擎优化处理时,通过所述Node服务开启无头浏览器,并通过所述无头浏览器访问所述目标页面;返回模块,用于通过所述Node服务将所述目标页面返回给搜索引擎。
9.一种终端,其特征在于,所述终端包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现如权利要求1至7中任意一项所述搜索引擎优化方法。
10.一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7中任意一项所述搜索引擎优化方法。
展开

说明书

技术领域
本发明涉及数据采集技术领域,具体涉及一种搜索引擎优化方法、装置、终端及存储介质。
背景技术
单页面应用(single-page application,SPA)模式虽然能够满足前端业务的发展需求,但是SPA应用模式只有一个超文本标记语言(Hypertext Markup Language,HTML)文件,只包含了最基本的文件内容,其他的内容都是通过在浏览器中用JavaScript(JS)动态渲染。
然而大部分搜索引擎在爬取内容的时候是不会动态抓取的,不管网站内容如何变化,搜索引擎抓取到的数据永远是最基本的HTML里面的内容。
现有针对SPA应用的搜索引擎优化(Search Engine Optimization,SEO)方案,实现起来都比较繁琐,包括现在比较流行的next.js、nuxt.js等单页面应用的服务端渲染框架,在实际开发中都很难避免更改原有的开发模式,造成时间成本增加。
因此,SPA应用模式无法很好的进行搜索引擎优化。
发明内容
鉴于以上内容,有必要提出一种搜索引擎优化方法、装置、终端及存储介质,能够在不进行任何更改的情况下添加SEO操作,实现了学习零成本以及代码零更改,大大提高了开发效率和开发体验。
本发明的第一方面提供一种搜索引擎优化方法,所述搜索引擎优化方法包括:在服务器中配置Nginx代理并启动Node服务;接收访问请求并将所述访问请求发送到所述Node服务的端口;通过所述Node服务判断所述访问请求是否来自于爬虫蜘蛛及通过所述Node服务根据所述访问请求判断访问的目标页面是否需要进行搜索引擎优化处理;当确定所述访问请求来自于爬虫蜘蛛及确定所述访问的目标页面需要进行搜索引擎优化处理时,通过所述Node服务开启无头浏览器,并通过所述无头浏览器访问所述目标页面;通过所述Node服务将所述目标页面返回给搜索引擎。
根据本发明的一个可选的实施例,所述在服务器中配置Nginx代理并启动Node服务之前,所述方法还包括:创建Node服务并为所述Node服务配置第一路径和第二路径;在所述Node服务中安装无头浏览器;获取与所述无头浏览器对应的多个操作方法;封装所述多个操作方法在所述Node服务中。
根据本发明的一个可选的实施例,所述通过所述Node服务判断所述访问请求是否来自于爬虫蜘蛛包括:通过所述Node服务解析所述访问请求的用户代理;匹配所述用户代理与预设数据库中的多个爬虫标识;当从所述预设数据库中匹配出与所述用户代理相同的爬虫标识时,确定所述访问请求来自于爬虫蜘蛛;当没有从所述预设数据库中匹配出与所述用户代理相同的爬虫标识时,确定所述访问请求来自于用户。
根据本发明的一个可选的实施例,所述通过所述Node服务根据所述访问请求判断访问的目标页面是否需要进行搜索引擎优化处理包括:通过所述Node服务解析所述访问请求的请求路径;根据所述请求路径确定所述访问请求的请求类型;判断所述请求类型是否为目标请求类型;当所述请求类型为所述目标请求类型时,确定访问的目标页面需要进行搜索引擎优化处理。
根据本发明的一个可选的实施例,所述通过所述无头浏览器访问所述目标页面包括:获取所述爬虫蜘蛛要访问的网站目录;确定所述Node服务的第二路径;调用所述无头浏览器模拟访问所述第二路径中的所述网站目录;调用所述无头浏览器对所述网站目录中的内容进行渲染得到目标页面;通过所述Node服务获取所述目标页面。
根据本发明的一个可选的实施例,所述方法还包括:当通过所述Node服务确定所述访问的目标页面不需要进行搜索引擎优化处理时,通过所述Node服务获取所述第二路径中的网站目录并返回给所述搜索引擎。
根据本发明的一个可选的实施例,所述方法还包括:判断所述访问请求是否为首次访问请求;当所述访问请求不为首次访问请求时,通过所述Node服务从缓存中命中与所述访问请求对应的目标页面;当所述访问请求为首次访问请求时,将所述访问请求发送到所述Node服务的端口。
本发明的第二方面提供一种搜索引擎优化装置,所述搜索引擎优化装置包括:配置模块,用于在服务器中配置Nginx代理并启动Node服务;接收模块,用于接收访问请求并将所述访问请求发送到所述Node服务的端口;判断模块,用于通过所述Node服务判断所述访问请求是否来自于爬虫蜘蛛及通过所述Node服务根据所述访问请求判断访问的目标页面是否需要进行搜索引擎优化处理;访问模块,用于当确定所述访问请求来自于爬虫蜘蛛及确定所述访问的目标页面需要进行搜索引擎优化处理时,通过所述Node服务开启无头浏览器,并通过所述无头浏览器访问所述目标页面;返回模块,用于通过所述Node服务将所述目标页面返回给搜索引擎。
本发明的第三方面提供一种终端,所述终端包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现所述搜索引擎优化方法。
本发明的第四方面提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现所述搜索引擎优化方法。
综上所述,本发明所述的搜索引擎优化方法、装置、终端及存储介质,只需在服务器创建一个简单的Node服务,随着前端项目一起运行即可做到和传统开发模式一样效果的SEO。
且原有的SPA应用也可以在不进行任何更改的情况下添加SEO操作,实现了学习零成本以及代码零更改,大大提高了开发效率和开发体验。
另外,Node服务是一种JavaScript的跨平台运行环境,通过Node服务调用无头浏览器,可以在没有语言隔膜的情况下进行内容处理。
附图说明
图1是本发明实施例一提供的搜索引擎优化方法的流程图。
图2是本发明实施例二提供的搜索引擎优化装置的结构图。
图3是本发明实施例三提供的终端的结构示意图。
具体实施方式
为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施例对本发明进行详细描述。
需要说明的是,在不冲突的情况下,本发明的实施例及实施例中的特征可以相互组合。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。
本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。
图1是本发明实施例一提供的搜索引擎优化方法的流程图。
所述搜索引擎优化方法具体包括以下步骤,根据不同的需求,该流程图中步骤的顺序可以改变,某些可以省略。
S11,在服务器中配置Nginx代理并启动Node服务。
Nginx是一款自由的、开源的、高性能的HTTP服务器和反向代理服务器;同时也是一个IMAP、POP3、SMTP代理服务器;Nginx可以作为一个HTTP服务器进行网站的发布处理,另外Nginx可以作为反向代理进行负载均衡的实现。
关于服务器中Nginx代理的配置为现有技术,本发明在此不再详细阐述。
Node是一个让JavaScript运行在服务端的开发平台。
可以使用Node命令启动Node服务,可以使用webStorm工具启动Node服务,还可以使用pm2启动Node服务。
其中,pm2 是一个带有负载均衡功能的Node应用的进程管理器,pm2可以通过配置,启动多个Node服务,pm2list可以查看当前启动的所有Node服务。
在一个可选的实施例中,所述在服务器中配置Nginx代理并启动Node服务之前,所述方法还包括:创建Node服务并为所述Node服务配置第一路径和第二路径;在所述Node服务中安装无头浏览器;获取与所述无头浏览器对应的多个操作方法;封装所述多个操作方法在所述Node服务中。
前端开发人员按照单页面应用(single page web application,SPA)模式开发完成后,执行项目打包及发布操作。
单页面应用是指只有一张Web页面的应用,是加载单个超文本标记语言(Hypertext Markup Language,HTML)页面并在用户与应用程序交互时动态更新该页面的Web应用程序。
所述第一路径为所有访问请求先统一代理到Node服务的端口,所述第二路径为指向网站的根目录,且配置为只能本地访问。
该可选的实施例,由于Node本身就是JavaScript,而前端同样使用JavaScript进行开发,如此,便能够零成本对SEO进行配置;同时,搭配无头浏览器(Headless Chrome),能够便捷的在服务器上模拟浏览器操作,使得访问模式和在客户端用浏览器访问保持一致,所以无需考虑无法操作文档对象模型(document object model,DOM)的问题。
通过结合Node和无头浏览器技术,无需加载不必要的资源,从而提高了访问速度和效率。
S12,接收访问请求并将所述访问请求发送到所述Node服务的端口。
服务器接收到用户发送的对网站的访问请求,将访问请求统一提交给Node服务的端口,由Node服务针对不同的访问请求采取不同的处理方式。
S13,通过所述Node服务判断所述访问请求是否来自于爬虫蜘蛛及通过所述Node服务根据所述访问请求判断访问的目标页面是否需要进行搜索引擎优化处理。
Node服务不仅判断是否访问请求来自于爬虫蜘蛛,还判断要访问的目标页面是否需要进行搜索引擎优化处理,通过这两个双重过滤条件来确定如何执行后续处理。
在一个可选的实施例中,所述通过所述Node服务判断所述访问请求是否来自于爬虫蜘蛛包括:通过所述Node服务解析所述访问请求的用户代理;匹配所述用户代理与预设数据库中的多个爬虫标识;当从所述预设数据库中匹配出与所述用户代理相同的爬虫标识时,确定所述访问请求来自于爬虫蜘蛛;当没有从所述预设数据库中匹配出与所述用户代理相同的爬虫标识时,确定所述访问请求来自于用户。
该可选的实施例中,预设数据库中存储有多个爬虫标识,例如,Baiduspider、Googlebot、360Spider、Sosospider、sogou spider等。
如果访问请求来自于搜索引擎的爬虫蜘蛛,则必定能从多个爬虫标识匹配出与所述用户代理(UserAgent)相同的爬虫标识。
如果访问请求来自于用户,则无法从多个爬虫标识匹配出与所述用户代理相同的爬虫标识。
在一个可选的实施例中,所述通过所述Node服务根据所述访问请求判断访问的目标页面是否需要进行搜索引擎优化处理包括:通过所述Node服务解析所述访问请求的请求路径;根据所述请求路径确定所述访问请求的请求类型;判断所述请求类型是否为目标请求类型;当所述请求类型为所述目标请求类型时,确定访问的目标页面需要进行搜索引擎优化处理。
该可选的实施例中,访问请求中携带有请求路径,对所述请求路径进行关键词提取,根据提取出的关键词进行语义解析即可确定所述访问请求为何种访问请求。
在所述Node服务中预先设置有多个目标请求类型,这多个目标请求类型对应的访问页面需要进行搜索引擎优化处理。
示例性的,假设请求路径为http://www.northnews.cn/p/1838416.HTML,提取出的关键词为news,语音解析为新闻,则表明请求类型为新闻资讯类型。
对于新闻资讯类型的访问请求,不可能每篇文章都生成一个页面,否则会出现大量的HTML文件,造成大量的冗余文件,因此需要进行搜索引擎优化处理。
通过事先确定需要进行搜索引擎优化处理的页面,能够在接收到访问请求时,在服务端即可完成页面的渲染,实现搜索引擎的优化,而不需在前端进行大量渲染,浪费时间,影响搜索引擎的排名。
S14,当确定所述访问请求来自于爬虫蜘蛛及确定所述访问的目标页面需要进行搜索引擎优化处理时,通过所述Node服务开启无头浏览器,并通过所述无头浏览器访问所述目标页面。
在一个可选的实施例中,所述通过所述无头浏览器访问所述目标页面包括:获取所述爬虫蜘蛛要访问的网站目录;确定所述Node服务的第二路径;调用所述无头浏览器模拟访问所述第二路径中的所述网站目录;调用所述无头浏览器对所述网站目录中的内容进行渲染得到目标页面;通过所述Node服务获取所述目标页面。
通过调用无头浏览器根据爬虫蜘蛛要访问的网站目录在本地访问Nginx代理指向的网站路径,在服务器中通过无头浏览器成功访问到网络目录后,再利用Node服务获取无头浏览器渲染完成后的内容,并以HTML的形式返回给搜索引擎的爬虫蜘蛛。
该可选的实施例中,利用了无头浏览器模拟真实场景搜索引擎的抓取从而返回关键的SEO信息,因此不需更改现有的SEO的代码结构,提高了开发效率。
在一个可选的实施例中,所述方法还包括:当通过所述Node服务确定所述访问的目标页面不需要进行搜索引擎优化处理时,通过所述Node服务获取所述第二路径中的网站目录并返回给所述搜索引擎。
该可选的实施例中,当通过所述Node服务确定所述访问请求无论来自于用户还是来自于爬虫蜘蛛,只要确定所述访问的目标页面不需要进行搜索引擎优化处理,则可以通过所述Node服务直接获取网站目录即可。
S15,通过所述Node服务将所述目标页面返回给搜索引擎。
本实施例,只需在服务器创建一个简单的Node服务,随着前端项目一起运行即可做到和传统开发模式一样效果的SEO。
且原有的SPA应用也可以在不进行任何更改的情况下添加SEO操作,实现了学习零成本以及代码零更改,大大提高了开发效率和开发体验。
另外,Node服务是一种JavaScript的跨平台运行环境,通过Node服务调用无头浏览器,可以在没有语言隔膜的情况下进行内容处理。
在一个可选的实施例中,所述方法还包括:判断所述访问请求是否为首次访问请求;当所述访问请求不为首次访问请求时,通过所述Node服务从缓存中命中与所述访问请求对应的目标页面;当所述访问请求为首次访问请求时,将所述访问请求发送到所述Node服务的端口。
该可选的实施例中,通常服务器会对访问请求的页面进行缓存(即已经渲染过),则Node服务可以直接在缓存中命中与访问请求相对应的数据,然后生成相应的页面反馈给搜索引擎,直接命中缓存能够提高页面响应的效率。
对于首次访问请求,则先将访问请求发送到所述Node服务的端口,并根据本发明所述的搜索引擎优化方法返回目标页面给搜索引擎。
本发明提供的搜索引擎优化方法,通过在服务器中配置Nginx代理并启动Node服务,当接收到访问请求时,将所述访问请求发送到所述Node服务的端口;由所述Node服务确定所述访问请求来自于爬虫蜘蛛及确定所述访问的目标页面需要进行搜索引擎优化处理时,通过所述Node服务开启无头浏览器,并通过所述无头浏览器访问所述目标页面;最后通过所述Node服务将所述目标页面返回给搜索引擎。
由于Node本身就是JavaScript,而前端同样使用JavaScript进行开发,如此便能零成本对SEO进行配置,同时搭配无头浏览器,能够便捷的在服务器上模拟浏览器操作,使得访问模式和在客户端用浏览器访问保持一致,因此不需更改现有的SEO的代码结构,提高了开发效率。
通过结合Node和无头浏览器技术,无需加载不必要的资源,能够提高访问速度和效率。
图2是本发明实施例二提供的搜索引擎优化装置的结构图。
在一些实施例中,所述搜索引擎优化装置20可以包括多个由程序代码段所组成的功能模块。
所述搜索引擎优化装置20中的各个程序段的程序代码可以存储于终端的存储器中,并由至少一个处理器所执行,以执行(详见图1描述)搜索引擎优化的功能。
本实施例中,所述搜索引擎优化装置20根据其所执行的功能,可以被划分为多个功能模块。
所述功能模块可以包括:配置模块201、封装模块202、接收模块203、判断模块204、访问模块205、返回模块206、命中模块207、发送模块208。
本发明所称的模块是指一种能够被至少一个处理器所执行并且能够完成固定功能的一系列计算机程序段,其存储在存储器中。
在本实施例中,关于各模块的功能将在后续的实施例中详述。
所述配置模块201,用于在服务器中配置Nginx代理并启动Node服务。
Nginx是一款自由的、开源的、高性能的HTTP服务器和反向代理服务器;同时也是一个IMAP、POP3、SMTP代理服务器;Nginx可以作为一个HTTP服务器进行网站的发布处理,另外Nginx可以作为反向代理进行负载均衡的实现。
关于服务器中Nginx代理的配置为现有技术,本发明在此不再详细阐述。
Node是一个让JavaScript运行在服务端的开发平台。
可以使用Node命令启动Node服务,可以使用webStorm工具启动Node服务,还可以使用pm2启动Node服务。
其中,pm2 是一个带有负载均衡功能的Node应用的进程管理器,pm2可以通过配置,启动多个Node服务,pm2list可以查看当前启动的所有Node服务。
所述封装模块202,用于在所述Node服务中封装多个操作方法。
在一个可选的实施例中,所述封装模块202在所述Node服务中封装多个操作方法包括:创建Node服务并为所述Node服务配置第一路径和第二路径;在所述Node服务中安装无头浏览器;获取与所述无头浏览器对应的多个操作方法;封装所述多个操作方法在所述Node服务中。
前端开发人员按照单页面应用(single page web application,SPA)模式开发完成后,执行项目打包及发布操作。
单页面应用是指只有一张Web页面的应用,是加载单个超文本标记语言(Hypertext Markup Language,HTML)页面并在用户与应用程序交互时动态更新该页面的Web应用程序。
所述第一路径为所有访问请求先统一代理到Node服务的端口,所述第二路径为指向网站的根目录,且配置为只能本地访问。
该可选的实施例,由于Node本身就是JavaScript,而前端同样使用JavaScript进行开发,如此,便能够零成本对SEO进行配置;同时,搭配无头浏览器(Headless Chrome),能够便捷的在服务器上模拟浏览器操作,使得访问模式和在客户端用浏览器访问保持一致,所以无需考虑无法操作文档对象模型(document object model,DOM)的问题。
通过结合Node和无头浏览器技术,无需加载不必要的资源,从而提高了访问速度和效率。
所述接收模块203,用于接收访问请求并将所述访问请求发送到所述Node服务的端口。
服务器接收到用户发送的对网站的访问请求,将访问请求统一提交给Node服务的端口,由Node服务针对不同的访问请求采取不同的处理方式。
所述判断模块204,用于通过所述Node服务判断所述访问请求是否来自于爬虫蜘蛛及通过所述Node服务根据所述访问请求判断访问的目标页面是否需要进行搜索引擎优化处理。
Node服务不仅判断是否访问请求来自于爬虫蜘蛛,还判断要访问的目标页面是否需要进行搜索引擎优化处理,通过这两个双重过滤条件来确定如何执行后续处理。
在一个可选的实施例中,所述判断模块204通过所述Node服务判断所述访问请求是否来自于爬虫蜘蛛包括:通过所述Node服务解析所述访问请求的用户代理;匹配所述用户代理与预设数据库中的多个爬虫标识;当从所述预设数据库中匹配出与所述用户代理相同的爬虫标识时,确定所述访问请求来自于爬虫蜘蛛;当没有从所述预设数据库中匹配出与所述用户代理相同的爬虫标识时,确定所述访问请求来自于用户。
该可选的实施例中,预设数据库中存储有多个爬虫标识,例如,Baiduspider、Googlebot、360Spider、Sosospider、sogou spider等。
如果访问请求来自于搜索引擎的爬虫蜘蛛,则必定能从多个爬虫标识匹配出与所述用户代理相同的爬虫标识。
如果访问请求来自于用户,则无法从多个爬虫标识匹配出与所述用户代理相同的爬虫标识。
在一个可选的实施例中,所述判断模块204通过所述Node服务根据所述访问请求判断访问的目标页面是否需要进行搜索引擎优化处理包括:通过所述Node服务解析所述访问请求的请求路径;根据所述请求路径确定所述访问请求的请求类型;判断所述请求类型是否为目标请求类型;当所述请求类型为所述目标请求类型时,确定访问的目标页面需要进行搜索引擎优化处理。
该可选的实施例中,访问请求中携带有请求路径,对所述请求路径进行关键词提取,根据提取出的关键词进行语义解析即可确定所述访问请求为何种访问请求。
在所述Node服务中预先设置有多个目标请求类型,这多个目标请求类型对应的访问页面需要进行搜索引擎优化处理。
示例性的,假设请求路径为http://www.northnews.cn/p/1838416.HTML,提取出的关键词为news,语音解析为新闻,则表明请求类型为新闻资讯类型。
对于新闻资讯类型的访问请求,不可能每篇文章都生成一个页面,否则会出现大量的HTML文件,造成大量的冗余文件,因此需要进行搜索引擎优化处理。
通过事先确定需要进行搜索引擎优化处理的页面,能够在接收到访问请求时,在服务端即可完成页面的渲染,实现搜索引擎的优化,而不需在前端进行大量渲染,浪费时间,影响搜索引擎的排名。
所述访问模块205,用于当确定所述访问请求来自于爬虫蜘蛛及确定所述访问的目标页面需要进行搜索引擎优化处理时,通过所述Node服务开启无头浏览器,并通过所述无头浏览器访问所述目标页面。
在一个可选的实施例中,所述访问模块205通过所述无头浏览器访问所述目标页面包括:获取所述爬虫蜘蛛要访问的网站目录;确定所述Node服务的第二路径;调用所述无头浏览器模拟访问所述第二路径中的所述网站目录;调用所述无头浏览器对所述网站目录中的内容进行渲染得到目标页面;通过所述Node服务获取所述目标页面。
通过调用无头浏览器根据爬虫蜘蛛要访问的网站目录在本地访问Nginx代理指向的网站路径,在服务器中通过无头浏览器成功访问到网络目录后,再利用Node服务获取无头浏览器渲染完成后的内容,并以HTML的形式返回给搜索引擎的爬虫蜘蛛。
该可选的实施例中,利用了无头浏览器模拟真实场景搜索引擎的抓取从而返回关键的SEO信息,因此不需更改现有的SEO的代码结构,提高了开发效率。
在一个可选的实施例中,所述访问模块205还用于当通过所述Node服务确定所述访问的目标页面不需要进行搜索引擎优化处理时,通过所述Node服务获取所述第二路径中的网站目录并返回给所述搜索引擎。
该可选的实施例中,当通过所述Node服务确定所述访问请求无论来自于用户还是来自于爬虫蜘蛛,只要确定所述访问的目标页面不需要进行搜索引擎优化处理,则可以通过所述Node服务直接获取网站目录即可。
所述返回模块206,用于通过所述Node服务将所述目标页面返回给搜索引擎。
本实施例,只需在服务器创建一个简单的Node服务,随着前端项目一起运行即可做到和传统开发模式一样效果的SEO。
且原有的SPA应用也可以在不进行任何更改的情况下添加SEO操作,实现了学习零成本以及代码零更改,大大提高了开发效率和开发体验。
另外,Node服务是一种JavaScript的跨平台运行环境,通过Node服务调用无头浏览器,可以在没有语言隔膜的情况下进行内容处理。
在一个可选的实施例中,所述判断模块204还用于判断所述访问请求是否为首次访问请求。
所述命中模块207,用于当所述访问请求不为首次访问请求时,通过所述Node服务从缓存中命中与所述访问请求对应的目标页面;所述发送模块208,用于当所述访问请求为首次访问请求时,将所述访问请求发送到所述Node服务的端口。
该可选的实施例中,通常服务器会对访问请求的页面进行缓存(即已经渲染过),则Node服务可以直接在缓存中命中与访问请求相对应的数据,然后生成相应的页面反馈给搜索引擎,直接命中缓存能够提高页面响应的效率。
对于首次访问请求,则先将访问请求发送到所述Node服务的端口,并根据本发明所述的搜索引擎优化方法返回目标页面给搜索引擎。
本发明提供的搜索引擎优化装置,通过在服务器中配置Nginx代理并启动Node服务,当接收到访问请求时,将所述访问请求发送到所述Node服务的端口;由所述Node服务确定所述访问请求来自于爬虫蜘蛛及确定所述访问的目标页面需要进行搜索引擎优化处理时,通过所述Node服务开启无头浏览器,并通过所述无头浏览器访问所述目标页面;最后通过所述Node服务将所述目标页面返回给搜索引擎。
由于Node本身就是JavaScript,而前端同样使用JavaScript进行开发,如此便能零成本对SEO进行配置,同时搭配无头浏览器,能够便捷的在服务器上模拟浏览器操作,使得访问模式和在客户端用浏览器访问保持一致,因此不需更改现有的SEO的代码结构,提高了开发效率。
通过结合Node和无头浏览器技术,无需加载不必要的资源,能够提高访问速度和效率。
参阅图3所示,为本发明实施例三提供的终端的结构示意图。
在本发明较佳实施例中,所述终端3包括存储器31、至少一个处理器32、至少一条通信总线33及收发器34。
本领域技术人员应该了解,图3示出的终端的结构并不构成本发明实施例的限定,既可以是总线型结构,也可以是星形结构,所述终端3还可以包括比图示更多或更少的其他硬件或者软件,或者不同的部件布置。
在一些实施例中,所述终端3是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的终端,其硬件包括但不限于微处理器、专用集成电路、可编程门阵列、数字处理器及嵌入式设备等。
所述终端3还可包括客户设备,所述客户设备包括但不限于任何一种可与客户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互的电子产品,例如,个人计算机、平板电脑、智能手机、数码相机等。
需要说明的是,所述终端3仅为举例,其他现有的或今后可能出现的电子产品如可适应于本发明,也应包含在本发明的保护范围以内,并以引用方式包含于此。
在一些实施例中,所述存储器31中存储有程序代码,且所述至少一个处理器32可调用所述存储器31中存储的程序代码以执行相关的功能。
例如,上述实施例中所述的各个模块是存储在所述存储器31中的程序代码,并由所述至少一个处理器32所执行,从而实现所述各个模块的功能。
所述存储器31包括只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable Read-Only Memory,PROM)、可擦除可编程只读存储器(ErasableProgrammable Read-Only Memory,EPROM)、一次可编程只读存储器(One-timeProgrammable Read-Only Memory,OTPROM)、电子擦除式可复写只读存储器(Electrically-Erasable Programmable Read-Only Memory,EEPROM)、只读光盘(CompactDisc Read-Only Memory,CD-ROM)或其他光盘存储器、磁盘存储器、磁带存储器、或者能够用于携带或存储数据的计算机可读的任何其他介质。
在一些实施例中,所述至少一个处理器32是所述终端3的控制核心(ControlUnit),利用各种接口和线路连接整个终端3的各个部件,通过运行或执行存储在所述存储器31内的程序或者模块,以及调用存储在所述存储器31内的数据,以执行终端3的各种功能和处理数据。
例如,所述至少一个处理器32执行所述存储器中存储的程序代码时实现本发明实施例中所述的搜索引擎优化方法的全部或者部分步骤。
所述至少一个处理器32可以由集成电路组成,例如可以由单个封装的集成电路所组成,也可以是由多个相同功能或不同功能封装的集成电路所组成,包括一个或者多个中央处理器(Central Processing unit,CPU)、微处理器、数字处理芯片、图形处理器及各种控制芯片的组合等。
在一些实施例中,所述至少一条通信总线33被设置为实现所述存储器31以及所述至少一个处理器32等之间的连接通信。
尽管未示出,所述终端3还可以包括给各个部件供电的电源(比如电池),优选的,电源可以通过电源管理装置与所述至少一个处理器32逻辑相连,从而通过电源管理装置实现管理充电、放电、以及功耗管理等功能。
电源还可以包括一个或一个以上的直流或交流电源、再充电装置、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
所述终端3还可以包括多种传感器、蓝牙模块、Wi-Fi模块等,在此不再赘述。
上述以软件功能模块的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。
上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,终端,或者网络设备等)或处理器(processor)执行本发明各个实施例所述搜索引擎优化方法的部分。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。
例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。
可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。
因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。
不应将权利要求中的任何附图标记视为限制所涉及的权利要求。
此外,显然“包括”一词不排除其他单元或,单数不排除复数。
装置权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。
第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。
展开

查看更多专利详情信息请先登录或注册会员

相关专利类别推荐

获取手机验证码,即可注册成为会员

专利详情咨询

咨询内容

姓名

手机

验证码

用户登录

手机号

手机验证码

提示

不能再减了!!!

提交成功

八月瓜客服中心已经收到您的信息,正在为您派遣知识产权顾问。知识产权顾问会携带贴心的服务以闪电搬的速度与您联系。

扫一扫关注八月瓜微信 创业一手掌握