由于之前并没有学习过相关的语言,在这里我将逐步介绍需要的工具。
以下是我参考的nodejs教程:
www.ybao.org/book/nodejs/627.html
提供给大家学习参考。
## 以下模块的安装:
在nodejs安装路径下的命令提示符中输入:
npm install XXXXX
(XXXXX为模块名称,如Request)
注:以下代码均来自学校!!!
Request模块
参考资料:
https://requests.readthedocs.io/zh_CN/latest/
功能:
发送GET、POST请求。
使用演示:
// 向服务端发送请求
var req = http.request(options, callback);req.end();
var myRequest = require('request') //导入request模块
//常用法,将encoding和heagers设为null,将url传递给request
function request(url, callback) {
var options = {
ur: url, encoding: null, headers: null
}
myRequest(options, callback)
}
url:统一资源定位符
encoding:使用null时,传递二进制数据;其他任何值将传递给toString;此处我们需要获得二进制数据。
headers:HTTP头。
Cheerio模块
参考资料:
https://www.jianshu.com/p/629a81b4e013
使用演示:
var html = body; //将body部分存入解析的html DOM结构中
var $ = myCheerio.load(html, { decodeEntities: false });//将html通过Cheerio的load方法加载至$中
console.log("title: " + $('title').text());//选择title部分,转化为文本
console.log("description:" +$('meta[name="description"]').eq(0).attr("content"));
//获取cheerio对象中的第0项,并找出content属性的值
功能:
$(selector, [context], [root])
其中selector是目标选择器,context是目标选择器的上下文,root是上下文context的上下文。selector和context可以是字符串表达式、dom元素、dom元素集合、cheerio对象,而root一般都是html文档字符串。
.attr(name[, value])
第一个参数查找属性的值;第二个参数(存在时)设置属性的值。
.removeAttr(name)
移除查找到的属性,返回被移除的值。
.hasClass(className)
返回元素中是否包含名为className的class。
.find(selector)
查找满足selector目标选择器的元素。
.perv()与.next()
获得已查找到的元素前/后一个兄弟元素。
.siblings()
获得元素的除自己外的所有同级元素。
.children([selector])
获得某元素的子元素,范围为所有子元素。
.each(function(index, element){…})
将每一个元素传入函数并执行。
.map(function(index, element){…})
将每一个元素传入函数并执行,并且返回一个值。
.eq(i)
根据索引获得cheerio集合中的一个对象,从尾部开始索引时参数为负数。
.filter(selector) 与 .filter(function(index))
在cheerio对象集合中依据条件筛选。
.first()
获得cheerio集合中第一个cheerio对象。
.last()
获得cheerio集合中最后一个cheerio对象。
.html([htmlString])
将获得的元素转为html返回。
Iconv-lite模块
使用演示:
var iconv = require('iconv-lite');//导入包
body = iconv.decode(body, 'gbk');//将body部分由GBK编码转码为utf-8编码
功能:
转换编码格式,防止乱码
这节只讲这些模块,其他需要的模块将在以后逐步介绍。
开发相关:
服务器:CentOS 8.1 64位
mysql图形化工具:mysql-front
远程连接工具:Xshell6,Xftp6
服务器上需安装:
mysql
nodejs
jdk
tomcat
及各种npm
安装宝塔(请在未安装其他服务的环境下进行)
宝塔Linux面板是提升运维效率的服务器管理软件,支持一键LAMP/LNMP/集群/监控/网站/FTP/数据库/JAVA等100多项服务器管理功能。
为了方便地维护服务器,我决定安装宝塔面板。
我采用阿里云服务器,需要开放端口:
开放端口
下面的步骤参考这个链接:
点我