node url

querystring 第二个参数指定分隔符

Node学习笔记 http

也可以指定三个参数,效果和两个参数类似

Node学习笔记 http

不同于querystring,下面是querystringfy的用法

Node学习笔记 http

 queryescape与encodeURIComponent方法类似,能解析中文

Node学习笔记 http

 

 HTTP爬虫

node 创建一个Server
Node学习笔记 http
Node学习笔记 http

 

测试能不能从豆瓣请求到数据

Node学习笔记 http

在当前文件的文件夹用node运行这个文件

Node学习笔记 http

数据请求成功

 

查看数据的headers

Node学习笔记 http

重新run一下这个文件

 Node学习笔记 http

 在后端设置返回数据的编码

 response.setEncoding('utf8')

 通过data事件监听收取数据Node学习笔记 http

 Node学习笔记 http

后端跨域方案

后端没有同源策略,直接获得数据返回给前端,前端可以直接用

Node学习笔记 http

通了之后,开始通过http协议做一个小爬虫程序

爬虫爬到的数据是服务器直接返回的内容,不会去爬取网页中异步获取的数据。

爬取京东的页面信息

过程中安装了一个cheerio的包,这个包是相当于服务器端的jQuery  装包: npm install cheerio -S

代码如下

const https = require('https')

const cheerio = require('cheerio')
options = {
hostname: 'www.jd.com',
port: 443,
method: "GET",
path: '/'
}

let responseData = ''

//过滤
function filterData(data){
let $ = cheerio.load(data)
let a = $('.cate_menu_item').find('a')
a.each((index,value)=>{
console.log($(value).text());
})
}


const request =https.request(options,(response)=>{
response.setEncoding = 'utf-8'
response.on('data',(chunk)=>{
responseData += chunk
})
response.on('end',()=>{
console.log(responseData);
filterData(responseData);
})
})

request.end()

 爬取结果 

Node学习笔记 http

 

 EventEmitter

const EventEmitter = require('events')

class Player extends EventEmitter {}

let player = new Player()

player.on('play',(track)=>{
    console.log(`正在直播${track}`)
})

player.emit('play','人民的名义')
player.emit('play','琅琊榜')

结果

Node学习笔记 http

 

相关文章:

  • 2021-09-03
  • 2021-09-01
  • 2021-10-18
  • 2021-07-12
  • 2022-12-23
  • 2021-12-18
  • 2022-01-21
猜你喜欢
  • 2021-01-07
  • 2022-02-03
  • 2022-12-23
相关资源
相似解决方案