易用、简洁且高效的http库
文档 Npmjs 地址 github axios 常用
请求api获取数据 请求页面解析 请求文件或图片下载 请求api获取数据
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的问题,同步更新在这里。
转载请注明出处: http://sdxlp.cn/article/axios整理.html