Node.js新闻爬虫实验项目(2)参考教程与开发工具

由于之前并没有学习过相关的语言,在这里我将逐步介绍需要的工具。
以下是我参考的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多项服务器管理功能。
为了方便地维护服务器,我决定安装宝塔面板。
我采用阿里云服务器,需要开放端口:
开放端口

下面的步骤参考这个链接:
点我

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值