今天有一个类似网络爬虫的需求,本来打算用我还算熟悉的asp或者asp.NET来做这个事情,但是写了这么长时间js,asp的语法实在不喜欢,VS又早被我卸掉了,思来想去打算用一下最近比较火的Node.js试一试。
倒腾了一整晚,很有必要为之文以志之下。O(∩_∩)O~
一、安装node.js
http://nodejs.org/
命令行 node -v 可以测试是否安装成功
二、使用npm安装其他库
(Node Package Manager)
程序开发中需要安装一些Nodejs提供的基本的模块之外的的工具库,比如request
1.安装
命令行 npm install
request
耐心等待,字符不再往上闪动并且可以继续输入命令的时候表示安装成功了。(因为网络的原因,我的安装是不完全成功的)
2.检查是否安装成功
命令行 npm list
查看当前目录下已安装的node包
这个命令输出中可以看到有哪些包是安装失败的
比如,request下面有一行红字“UNMET
DEPENDENCY”mime
~1.2.9
这说明request的一个依赖包mime没有安装成功,解决这个问题可以有两个办法:
1)重新安装 npm
install
mime(可以重复多次)
2)实在无效可以在github上找到相应的包页面,如https://github.com/broofa/node-mime
然后下载到nodejs安装目录\node_modules\npm\node_modules\request\node_modules\mime
注:刚和一位师哥交流了下,解决网络的问题,可以用cnpm的源,比如npm
config set registry http://registry.cnpmjs.org。(具体效果如何,下次再研究)
3.附一个npm常用的命令集合
http://hi.baidu.com/alimyself/item/3ba5200faba0c7c92f4c6b43
三、实战小应用
功能:下载一个图片到本地
新建一个demo.js的文件,写入以下代码,然后命令行 node demo.js的地址
回车
var fs = require(‘fs‘); var request = require(‘request‘); var imgUrl="http://static.cnblogs.com/images/logo_small.gif"; var fileName="logo_small.gif"; request.head(imgUrl, function(){ request(imgUrl).pipe(fs.createWriteStream("D:/" + fileName)); console.log("图片下载成功"); });
这个时候程序执行成功,D盘下可以看到下载下来的博客园的图标了。
哇咔咔,虽然很困,但是非常兴奋,话说明后天应该就可以写个爬虫,把某个漏洞明显的网站上的萌妹子们头像qq电话等等等等全爬下来了哦!