AngularJS单页面的动态数据无法被爬虫解析到的问题

优采云 发布时间: 2021-06-16 04:03

  

AngularJS单页面的动态数据无法被爬虫解析到的问题

  AngularJS框架的搜索引擎优化方案解析

  本文由网友上传:AngularJS框架的搜索引擎优化方案解析。您可以通过本文底部的“下载”下载本文的文档。

  随着互联网的飞速发展,使用传统静态页面和JavaScript技术开发大型网站越来越困难。 Google 推出的 AngularJS 是基于传统 JavaScript 的 MVC 框架,它允许开发人员编写当前主流的单页应用程序。它克服了HTML在构建大型Web应用方面的缺点,以HTML为模板,简化了应用组件,并使用依赖注入和数据绑定,使开发者能够更有效地开发大型网站和APP。为了让AngularJS开发的页面能够支持搜索引擎爬虫,需要对这种单页面模式进行搜索引擎优化(SEO)。 AngularJS单页SEO策略及相关文献研究较少,因此本文还结合了相关社区、论坛等一系列网络资源。针对AngularJS单页动态数据无法被爬虫解析的问题,本研究提出了两种基于JavaEE*敏*感*词*的非实时和实时静态SEO策略。

  1 单页静态策略

  1.1 策略一:非实时静态化

  智能识别爬虫机器人返回定期更新缓存页面的非实时静态SEO原理。具体分为: ①项目部署后或设定时间段后获取页面并在后台遍历。配置文件设置的遍历深度用于获取和转义首页的深度链接,每个链接都对应。交给下一步处理,直到所有遍历结束; ②对遍历的页面进行SEO处理,生成或更新静态HTML缓存到静态页面池中,即配置文件设置的缓存路径,遍历结束后及时失效链接缓存清理; ③网络请求首先经过*敏*感*词*(SEOFilter)。*敏*感*词*根据HTTP请求的请求头中收录的User-Agent等参数判断该请求是否为爬虫机器人请求。如果不是,则返回一个普通页面用于AngularJS的内部渲染和展示,否则通过URL对查询进行转义,返回对应的SEO缓存页面给爬虫机器人抓取关键词。由于这种策略是非实时的,所以适用于比较稳定,对搜索引擎实时性要求不高的网站。比如政务网站,每天更新内容不多,页面内容修改不频繁,可以每天更新服务器静态页面,满足搜索引擎条目每天更新的需求。

  1.2 策略二:实时静态化

  策略1是一种非实时静态策略,但它不太适合需要频繁数据更新和对搜索引擎实时性要求高的大型门户网站。比如大新闻网站、网站经常发布新的文章或者公告,搜索引擎需要能够尽快将新闻链接和关键词添加到索引中,所以频繁的服务器开销更新缓存页面会非常大,缓存文件占用的空间会越来越大。因此,针对这种情况提出了实时静态策略。当一个页面被请求时,会立即生成一个定期销毁的静态页面缓存。当爬虫机器人请求它时,它首先检查是否有缓存以及页面缓存是否无效。如果缓存有效,则返回静态池中的静态页面,否则,生成新的静态页面或更新静态页面。池中的静态页面,修改了实时静态策略的原理。同时,这种实时静态策略也改进了页面的缓存方式。 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .对不同缓存页面的关键字设置不同的清理权重(即更新频率高低,需要手动设置)。相对稳定的页面,如首页菜单、公司信息等展示页面,可以设置较小的权重值;更新较频繁的页面,如新闻公告、发布消息的摘要页面,可以设置较大的权重值。一个权重较小的静态页面可以缓存更长的时间,可以存储一天甚至一周,可以大大节省频繁生成此类缓存所造成的资源浪费;而权重较大的静态页面更新频繁,因此缓存时间较短,考虑到搜索引擎的爬虫机器人不会实时抓取信息,但会在一段时间后(通常为四到五个小时),因此可以在两到三个小时或更短的时间内清除缓存。这里的缓存也可能清理失败,所以在判断缓存是否存在的同时,还要检查静态页面的过期时间,避免旧页面缓存过期影响新发布信息的检索。政策还规定网站重新部署后强制清除所有缓存。

  2 单页静态策略的实现与测试

  2.1 实现步骤

  静态策略的实现主要分为配置*敏*感*词*和*敏*感*词*实现两步。首先将AngularJS web项目添加到JavaEE webapp文件夹中,设置WEB-INF/web.xml文件,确定外部工具路径、缓存路径、遍历深度、拦截规则等参数,以下是少量配置代码:

  策略二实时静态SEO策略*敏*感*词*SEOFilter的实现原理。*敏*感*词*首先判断请求的发送者。如果不是爬虫机器人,则直接返回正常页面,否则返回SEO实时静态页面。爬虫机器人的主要处理流程是:首先进行URL转义,爬虫请求分析,记录URL,查询遍历深度(不带该参数,使用配置文件中的默认值);然后进行URL的第二次转义,查询Cached文件;如果有缓存文件且没有失效,则直接返回SEO静态页面;如果缓存文件不存在,或缓存已过期未及时销毁,则在进入SEO处理器前销毁缓存; SEO处理器使用第三方工具PhantomJS,它是一个基于WebKit的服务器端JavaScript API,不依赖浏览器,完全支持各种Web标准,如页面的文档对象模型(DOM)处理,这是一个动态页面的搜索引擎。优化;最后生成一个缓存页面,将文件保存到缓存文件目录(缓存池),返回SEO静态页面。

  2.2 测试分析

  测试环境系统为Windows Server 2008 R2,部署平台为Tomcat7.0.70,8083端口为实施实时静态策略后的网站访问入口,8084端口为原来的 AngularJS 网站'S 访问入口。先用浏览器访问网站,*敏*感*词*判断请求是浏览器请求,并在控制台显示浏览器版本,浏览器可以正常浏览网页;然后使用模拟百度爬虫机器人的工具分别检查原网页和策略执行后,抓取网页并显示抓取到的页面信息。说明爬虫机器人只能抓取AngularJS单页面中的部分关键词,包括页面底部的标题、描述等信息;并且使用实时静态策略后,*敏*感*词*识别爬虫机器人并显示在控制台上,同时返回SEO静态页面,表示页面中的动态数据可以被通用爬虫机器人抓取,并显示有用的关键字,包括主要标题和公告、网站信息等信息。

  3 结束语

  本文提出了两种非实时和实时静态SEO策略,这两种策略都可以达到AngularJS单页SEO静态的预期目的,但也存在一些不足。策略一针对规模较大的网站,相对稳定,对实时搜索引擎检索要求不高,如政府机关网站等,可以定时更新网站中的静态页面,但是对于实时性要求高的门户网站,会频繁的重新遍历所有静态页面,大大增加了服务器的压力,生成所有缓存的时间和服务器缓存页面的数量也会相应增加。策略二针对的是对搜索引擎实时性要求高的大型门户网站,如新闻网站等,最大化缓存页面的实时性,节省缓存文件的空间,但对于网站 k14@,对实时性要求不高,会频繁破坏生成不需要实时更新的页面缓存,也会浪费部分服务器。资源。因此,有必要根据当前网站实时搜索引擎检索的要求选择合适的策略。同时本文的重点是AngularJS单页SEO静态策略和实现,所以可以在关键词优化方面做进一步的研究。

  最后,搜索引擎优化是整个系统的协同优化过程。它受内部设计因素和外部链接因素的影响。 SEO实际上只是一种辅助行为。对于网站,内容更重要。全面、创新。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线