简析Node模块

一、URL模块在这里插入图片描述1、url.parse()
作用:将一个url链接解析成对象
第一个参数是url
第二个参数如果为true,代表可以对query进行二次解析。
第三个参数如果为true,会对没有请求协议的url进行进一步的解析。url.parse(“https://www.baidu.com:8080/api.php?from=qianfeng&course=node#level1”)在这里插入图片描述
在这里插入图片描述
2、url.format()
作用:将一个url对象拼接成对应的整体URL链接。

url.format(urlObject)
3、url.resolve()

url.resolve(from, to)
在这里插入图片描述
二、Query String-查询字符串
【注】querystring 模块提供了一些实用函数,用于解析与格式化 URL 查询字符串。 可以通过设置第二、三个参数修改拼接符。

querystring.stringify({name: “qianfeng”, course: [“nodejs”, “vue.js”], from: “”}, “,”, “:”);在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
三、HTTP模块
HTTP模块
HTTP小爬虫
Request方法

HTTP、HTTPS模块
//创建spider.js编写网络爬虫案例
1、引入模块
var http = require(“http”);
【注】http模块没有办法请求https模块
var https = require(“https”);

2、https://www.lagou.com/ 爬取拉勾网菜单页
var url = “https://www.lagou.com/”;

3、通过模块去请求这个链接,在回调函数中接受数据
https.get(url, function(res){
var html = “”;
4、启动data事件,如果数据更新,就触发事件拼接字符串
res.on(“data”, function(data){
html += data;
})

5、当数据请求结束,输出数据
res.on(“end”, function(){
// console.log(html);

	//调用方法进行解析
	var result = filterMenu(html);

	//调用方法输出
	printMenu(result);
})

6、捕获错误
res.on(“error”, function(err){
console.log(err);
})
})

7、
/*
【注】在这里要进一步抓取数据,需要引入一个模块
这个模块在本地没有,所以我们需要下载一下。
npm install cheerio -D
*/
var cheerio = require(“cheerio”);

//编写过滤数据的函数
function filterMenu(html){
<1>加载下载到的数据
var $ = cheerio.load(html);
<2>类似于JQ的使用方式,将需要的节点获取到。
var menu = $(".menu_main");
<3>解析
var menuData = [];
menu.each(function(index, item){
//一级标题
var menuTitle = $(item).find(“h2”).text();
var menuLists = KaTeX parse error: Expected '}', got 'EOF' at end of input: … menuList.push((item).text());
})
menuData.push({
menuTitle: menuTitle,
menuList: menuList
})
})
return menuData;
}

//定义一个输出的函数
function printMenu(menu){
menu.forEach(function(item){
console.log(item.menuTitle + “\n”);
item.menuList.forEach(function(item){
console.log(item);
})
})
}

终端需要运行的命令
【注】实现http模块和https模块大致相同。

npm install cheerio -D
node spider.js

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值