NodeJS是一个最近非常热门的JS框架。 Encyclopedia的引入是一个轻量级且高效的事件驱动的JS运行时平台。
使用NodeJS有三个原因。一个是它的代码基于JS并且更容易编写。已有入门级经验。另一个是它的库Cheerio,它可以像jQuery一样操作源代码中的Dom元素。你这是什么意思?第三是它可以用作本地端或服务器。
这两天的研究更多,应该算是一个主要的条目。只需要处理一个要求,因此应用NodeJS。
一、安装网上有很多教程,下载到https://nodejs.org,你可以在Win系统下运行一个环境。下载Windows的安装程序版本,然后双击以安装它。
然后配置工件Sublime以开始使用。
向Sublime添加实时调试,打开Sublime-“工具 – ”构建系统 – “新构建系统”
在新打开的文件中写下以下代码
{
‘cmd’: [‘node’,’$ file’],
‘file_regex’:’^ [] *文件’(. *?)’,行([0-9] *)’,
‘selector’:’ource.javascript’
}
然后另存为NodeJS.sublime-build。
创建一个新的集合.js文件并将其设置为NodeJS以进行调试。
20181021_5bcc1741f2b5c.png 二、注意在nodejs中需要以(资源名称)方式引用一些外部库,这些外部库安装了NodeJS,已经放在C盘的程序文件下。但直接要求无效。
因为NodeJS提倡自己的代码使用自己的库,所以还需要将库复制到集合.js文件中。
引用时,您可以使用npm链接库名称将系统C驱动器的库引用到我们的项目中。
20181021_5bcc1742ae0ba.jpg 三、直接使用了//将页面内容收集到本地
Var http=require(’http’);
Var cheerio=require(’cheerio’); //根据基准测试,引用cheerio模块使DOM在服务器端像客户端一样运行,没有正则表达式:cheerio比JsDom快8倍。
Var iconv=require(’iconv-lite’); //解析代码转换模块
Var BufferHelper=require(’bufferhelper’); //关于缓冲区,我稍后会谈到它
Var data=download(’http://blog.csdn.net/kissliux/article/details/20466889′,function(data){
//console.log(data);
Var $=cheerio.load(data); //加载到cheerio进行分析
//遍历DIV
//$(’a’)。each(function(i,e){
//console.log($(e).attr(’href’));
//});
//遍历链接
//$(’a.downbtn’)。each(function(i,e){
//console.log($(e).attr(’href’));
//});
//var title=$(’head> title’)。text(); //读取标题信息
//console.log(title);
//分析获取页面的基本信息
Var page={
‘document’: {
标题: $(’head> title’)。text(),
Meta: {
标题: $(’meta [property=’og: title’]’)。attr(’content’),
作者: $(’meta [property=’og: author’]’)。attr(’content’),
描述: $(’meta [name=’description’]’)。attr(’content’),
Url: $(’meta [property=’og: url’]’)。attr(’content’),
输入: $(’meta [property=’og: type’]’)。attr(’content’),
图片: $(’meta [property=’og: image’]’)。attr(’content’)
},
‘images’: []
}
};
//将图片收集到列表中
$(“IMG”)。每个(函数(){
Var url=$(this).attr(’src’);
if(page.document.images.indexOf(url)===-1){
Page.document.images.push(URL);
}
});
CONSOLE.LOG(页);
});
/**
*下载源代码,自动识别码
* @param {[type]} url [下载网址]
* @param {Function}回调[callback]
* @return {[type]} [描述]
* /
功能下载(网址,回调){
Http.get(url,function(res){
Var data=”;
Res.on(’data’,function(chunk){
数据+=块;
});
Res.on(’end’,function(){
回调(数据);
});
})。on(’error’,function(e){
Console.log(’得错误:’+ e.message);
回调(NULL);
});
}
上面我密封了下载并下载了Html内容。还有一个简单的处理例子。请注意,必须使用npm链接库名称在本地克隆require库,或者您可以在集合.js下的node_modules目录下自行下载该包。如果您没有此目录,请自行创建。
其中:
使用Cheerio很容易获得页面的H1标题。
Var title=$(’#article_details h1 a’)。text()。trim(); //读取Div下的H1标签文本。
没有感觉jQuery很强大。如果你想分析页面,你还使用常规吗?没有。还在使用分析?不再。找一个大的Div并直接阅读。 C#当然也可以使用Htmp Agility包来解析Dom。
但为此我想创建一个新项目,运行,调试,使用NodeJS,直接在Sublime中按Ctrl + B,你可以立即看到效果。并且可以放在服务器上。把它放在我的服务器上。许多好处没有得到很好的描述。如果您要订购JS代码,您应该很快开始。
以下是运行效果
20181021_5bcc1743c8bf9.png完善功能后,我将分享更完整的功能,读取文件中的URL,收集内容,清理内容,将其放入数据库或导出文件。