易用、简洁且高效的http库
对于我来说,一般都是用在nodejs
方面使用的,具体使用的业务都有:
let axios = require('axios');
let data = await axios.get(url).then(rs=>rs.data);
console.log(data);
let axios = require('axios');
let data = await axios.post(url,data).then(rs=>rs.data);
console.log(data)
或者
let axios = require('axios');
let data = axios({
url : url,
data : data
}).then(rs=>rs.data);
这种就是最最常用的了.. 到处都是,应该也没什么问题的。
再就是会写爬虫,爬一些页面数据,我一般都是cheerio
与 axios
组合。
那么要注意的地方就是header
了,这个文档中都有,简单一记录。
axios.get(url,{
headers : {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36'
}
}).then(rs=>rs.data);
解析html
let cheerio = require('cheerio');
let $ = cheerio.load(html);
//之后就是类似jquery的语法了。
遇到中文乱码的怎么搞?
//gbk编码转utf8的,大部分都说是处理下Content-type ,这个没有验证过。
axios({
url : url,
headers : {
'Content-type':'application/x-www-form-urlencoded;charset=utf-8'
}
})
//还遇到是unicode编码的中文的,这个直接在返回后的cheerio处理了。
let html =await axios.get(url).then(rs=>rs.data);
let $ = cheerio.load(html);
const text = $('#content').text();//这里会乱码
let entities = require('html-entities').XmlEntities;
let entitiesIns = new entities();
const rightTxt = entitiesIns.decode(text);//正常的内容啦
做爬虫的时候,难免会下载些美图啊啥的.. 哈哈
//方式还是挺多的,我常用的是stream
let fs = require('fs');
axios({
url : url,//图片地址
method : 'GET',
responseType : 'stream'
}).then(rs=>{
var ws = fs.createWriteStream('./xxoo.jpg');
rs.data.pipe(ws);
ws.on('end',()=>{});
}
暂记这些,后续碰到关于axios的问题,同步更新在这里。
转载请注明出处: https://chrunlee.cn/article/nodejs-axios-note.html