NodeJS在SEO中的应用:快速采集分析页面
一、安装
网上有很多的教程,下载到https://nodejs.org,在Win系统下运行就可以搭上一个环境。下载Windows的Installer版本,双击安装,就成功了。
然后配置神器Sublime开始使用。
为Sublime添加实时调试运行,打开Sublime-》Tools-》Build System-》New Build System
在新打开的文件中写入下面的代码
然后保存为NodeJS.sublime-build.
新建一个采集.js文件,设为NodeJS进行运行调试。
二、注意
在nodejs里面需要require(库名)的方式来引用一些外部的库,这些外部的库安装NodeJS的时候,已经放在C盘的programfiles下面了。但是直接require是无效的。
因为NodeJS提倡的是自己的代码用自己的库,所以还需要把库复制到采集.js这个文件下面。
引用的时候可以通过npm link 库名的方式,来把系统C盘的库引用到我们的项目下面。
三、直接使用了
注意require的库必须使用npm link 库名克隆到本地,或者自己下载包放到采集.js下面的node_modules目录下面,如果 没有这个目录,自己创建。
其中:
使用Cheerio要取页面的H1标题就简单了
var title=$(‘#article_details h1 a’).text().trim()//读取Div下面的H1标签文本。
有没有jQuery强到爆的感觉。想分析页面什么的,还用正则吗?不用了。还用分析吗?不用了。找个大的Div,直接就读出来了。C#当然也可以用Htmp Agility pack来解析Dom。
但是为此我要新建一个项目,运行,调试,用NodeJS的话,在Sublime里面按Ctrl+B直接运行,可以马上看到效果。而且可以放到服务端。放到我的服务器上去。诸多好处也不大好形容。如果会点JS代码的话,上手应该非常快。
2019-04-16-09:22 于公司假如面试官问你:前后端分离项目如何做seo?
1、使用prerender,如果说不用prerender,你怎么回答呢?
2、先去 www.baidu.com/robots.txt 找出常见的爬虫,然后在 ngnix 服务器上判断访问者的 User Agent (划重点)是否是爬虫。
如果是:用 ngnix 反向代理到我们自己用 nodejs + puppeteer 实现的爬虫服务器。
知识点:
puppeteer :谷歌推出,可以理解为无界面版本的 chrome 浏览器,通俗说就是可以在服务端使用浏览器(页面不展示而已)。
实际上是通过调用Chrome DevTools开放的接口与Chrome通信,Chrome DevTools的接口很复杂,但puppeteer对其进行了封装,我们调用起来还是很方便的。
把非阻塞的服务器想象成一个饭店服务员,这个服务员会一直跑下去。一个新客户来了,这个服务员就接了这个请求,把这个请求传给厨师,厨师做饭,然后服务员响应一个回调(callback)让客户稍等。完事了这服务员就接着跑,接其他的客户。这样下来。服务员就不会像之前那样傻等着厨师做完饭返回结果了。
文件读写异步处理,采用回调的机制,加快处理速度,不会等待,无视顺序,不停loop下去,不会产生阻塞,轻松处理高并发。
js的特性就是基于事件驱动,服务器只在用户那边有事件发生的时候才响应,这就是事件驱动。
适用于处理IO频繁但是CPU计算简单的场景(可以写博客,工具,聊天室,微服务等等)。
放到真正的业务场景之中作为中间层是再好不过的选择:在单页应用流行的今天可以轻松实现前后端同构,以此来提升页面渲染、加载速度,去除单页应用不利于SEO的负面影响。使用node可以对不同的后端服务进行一次全面整合,包括权限控制等很多方面。js是前端程序员所最熟悉的语言之一,学习成本低但是收益高,node所实现的中间层完全可以由前端程序员完成。
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)