NodeJS在SEO中的应用:快速采集分析页面
一、安装
网上有很多的教程,下载到>
然后配置神器Sublime开始使用。
为Sublime添加实时调试运行,打开Sublime-》Tools-》Build System-》New Build System
在新打开的文件中写入下面的代码
然后保存为NodeJSsublime-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代码的话,上手应该非常快。
建议多试几次特性 跨平台支持 Windows/Linux/Unix 支持的音视频编码 H264/H265/AAC/SPEEX/NELLYMOSER 支持缓存最近一个关键帧间隔数据,实现RTMP协议秒开 支持事件回调 支持>
使用Nodejs搭建Web服务器是学习Nodejs比较全面的入门教程,因为实现Web服务器需要用到几个比较重要的模块:>
作为一个Web服务器应具备以下几个功能:
1、能显示以html/htm结尾的Web页面
2、能直接打开以js/css/json/text结尾的文件内容
3、显示资源
4、自动下载以apk/docx/zip结尾的文件
5、形如>
6、形如>
引入需要用到的几个模块:
//>
//创建一个服务var ]");});
在创建服务的时候需要传递一个匿名函数processRequest 对请求进行处理,processRequest接收2个参数,分别是request和response, request对象中包含了请求的所有内容,response是用来设置响应头以及对客户端做出响应 *** 作。
processRequest:function(request,response){ var hasExt = true; var requestUrl = requesturl; var pathName = urlparse(requestUrl)pathname; //对请求的路径进行解码,防止中文乱码 pathName = decodeURI(pathName); //如果路径中没有扩展名 if(pathextname(pathName) === ''){ //如果不是以/结尾的,加/并作301重定向 if (pathNamecharAt(pathNamelength-1) != "/"){ pathName += "/"; var redirect = "); } } });}
请求处理函数中有几个重点需要说一下:
对于路径中有中文的,浏览器会自动进行编码(英文不变,中文会变),因此在接收到地址后,需要对地址进行解码,否则最后得到的路径和真实路径不相符,
当访问路径不是以具体的文件结尾,并且不是以/结尾,则需要通过重定向加上/,表示当前目录,否则当前路径下的静态资源会找不到
如果访问路径是目录,则列出该目录下所有文件及文件夹,并可以点击访问,为了让中文目录能正常显示,则还要在header中设置charset=utf-8
核心代码就这么多,大概140行左右,完整的代码已上传到github:>
如果要运行demo,打开cmd切换到根目录,运行node start 即可。
一、NodeJS介绍:NodeJS是一个让开发者可以快速创建网络应用的服务器端JavaScript平台,同时运用JavaScript进行前端与后端编程,开发者可以更专注于系统的设计以及保持其一致性。
在这篇文章中,我们将向您介绍如何在Ubuntu1404服务器上开始您的NodeJS神奇之旅。
二、如何安装发行稳定版的NodeJS
Ubuntu 1404为了保证跨平台服务体验的一致性,在它的仓库中默认包含了一个版本为01025的NodeJS,这个可能不是最新版本,但是却一定是标准发行版本。
要想获取这个版本的NodeJS,我们只要通过apt包管理工具来安装就可以。在安装之前,最好先更新一下apt包管理工具的本地索引,然后再从Ubuntu仓库中安装NodeJS。
sudo apt-get update
sudo apt-get install nodejs
如果Ubuntu软件仓库中的包正好是你所需要的,那么上述步骤就是在Ubuntu1004下安装NodeJS的全部 *** 作过程。大多数情况下,我们还希望也安装一份NodeJS的包管理工具:npm,您可以通过以下命令安装:
sudo apt-get install npm
NPM将让使得安装NodeJS的模块或者源码包变得非常简单。
在您运行NodeJS的时候请一定要注意,因为与别的工具包相冲突的原因,Ubuntu仓库中可执行的名字是nodejs而不是node。
下面,我们将讨论NodeJS更多种灵活的安装方式。
三、如何通过PPA来安装NodeJS?
一个让你可以保持获得NodeJS最新版本的替代方案是加入由NodeSource维护的PPA(Personal Package Archive)私有包档案。这个方式可以让你获得比Ubuntu仓库更多的NodeJS版本。
首先:你得安装PPA以获得访问它内容的权限。
curl -sL >
一、Express框架
前面的章节已经介绍过了,可以使用npm来安装nodejs模块。具体 *** 作请参照以前写的nodejs概论。
Express是一个nodejs的web开源框架,用于快速的搭建web项目。其主要集成了web的>
使用方法,在cmd中打开你所想创建web项目的路径。然后输入
Express appname
即可创建一个名为appname的web项目。控制台打印结果
在cmd中进入appname文件夹输入
node appnamejs
返回结果如下图,表示安装成功!
在项目开发中经常会出现这样的问题
此错误表示没有安装相关模块,解决办法是在cmd上打开项目文件夹,输入
npm install express
安装成功后会在本文件路径下生成一个node_modules,里面包含了Express框架代码。
其他模块也可用类似的方法进行安装,安装后的路径同样是在node_modules下。
二、jade模块
jade是一款高性能、简洁易懂的模板引擎。可通过jade来编写html文件。
jade类似一个用于快速编写html的语言,其编写后的文件后缀为jade。
以下为文件的内容
在cmd中输入,压缩的过的可以通过加-P来不压缩,如果每次更改模版都要打命令行一次很麻烦是不是,我们可以通过加上jade -P -w jadejade 加上一个-w来开启监视模式,每次更改模版,html文件都会自动编译咯
生成后的html文件如下:
在jada文件中是可以使用for循环和if判断语句的,可以让你体会类似JSP的<%%>和php的<php></php>在网页上输出数据的快感。
三、forever模块
nodejs作为>
1后台服务运行,监控运行日志,以及>
2确保项目的正常安全运行,Nodejs的启动命令node,很大程度无法满足运行需求;
Nodejs的forever模块在第二点就可以起到很大的作用,同时其拥有监控文件更改、自动重启等功能。
forever模块的使用方法有两种:1在命令行中使用
forever -l foreverlog -o outlog -e errlog appjs
-l foreverlog -o outlog -e errlog分别指定了forever的运行日志,脚本流水日志,脚本运行错误日志,启动后将在本文件夹下产生outlog、errlog文件。
2在编码中require forever模块使用。
四、SocketIO模块
SocketIO模块主要功能是将WebSocket协议应用到所有浏览器。主要用于实时的长连接多求情项目中。
例如:在线联网游戏,实时聊天、实时股票查看、二维码扫描登录等。
安装方法仍然是在cmd在中输入npm install socketio
如何使用SocketIO来创建一个项目。
需要分别实现服务端和客户端的逻辑:
先创建一个服务端的nodejs脚本index_serverjs
var app = require('>
其中,socketemit()为Socket发送消息的函数,第一个参数表示发送消息的key值,第二个参数为发送消息的内容,也就是发送的数据。
Socket。on()为Socket接收消息的函数,第一个参数为接收消息的可以值,第二个参数为回调函数,其中回调函数携带的参数为接收消息所发送的数据。
接下来web前端如何使用JavaScrit 来连接Socket服务器。
新建一个index_clienthtml
<script type="text/javascript" src="socketjs"></script>
<script type="text/javascript"> var socket = ioconnect('>
<script type="text/javascript" src="socketjs"></script>加载已经安装好的Socketio的本地JavaScrit文件。
var socket = ioconnect('>
socketio详细请参阅 >
五、request模块
request模块为开发者提供了一种简单访问>
安装:
npm install requset
request模块基本上覆盖了所有的>
get和post的区别
get:
1使用get向服务器发出和接收的请求会附在url之后。类似:>
2get请求不能超过1024个字节。
post没有限制,也不会附在url上。
接下来做一个简单的实例
get实例:
首先新建一个服务器app_getjs
var >
再建一个发送求情的request_getjs文件
var request=require('request');
requestget(">
在CMD中运行app_getjs,运行成功后,再打开一个cmd(之前的cmd不要关闭),执行request_getjs文件。
执行后的结果如下
hello world
GET
可以看出,通过requestget方法访问
>
var >
然后再新建一个request_postjs
var request=require("request");
requestpost('>
像上面一样在cmd中执行后显示的结果如下:
D:\nodejs\src\request>node request_postjs
{"name":"ermu","book":"nodejs"}
POST
request post提交了一个json对象{"name":"ermu","book":"nodejs"}而服务器接通过获取该POST数据,然后返回客户端,同时将>
request post参数可以有两种传递方式。
其中,第一种是将url和form表单的数据作为json参数在request post传递。举例如下:
requestpost('url':'>
另一种是将url和form作为两个参数,上面的实例就是使用这种方法。
六、 Formidable模块
该模块的目的是为了解决文件上传。
在原生的nodejs模块中,提供了获取post数据的方法,但是并没有直接获取上传文件。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)