经常用到nodejs下载资源的情况(简单的爬虫),可以考虑直接使用nodejs内置的http/https模块。
test.mjs
import https from 'https'
import fs from 'fs'
import URL from 'url'
let urlObj = URL.parse(url)
https.get({
...urlObj,
rejectUnauthorized: false, // 忽略https安全性
method: 'GET', // 请求方式
headers: {
referer: '', // 如果资源有防盗链,则清空该属性
},
}, res => {
//设置编码格式
res.setEncoding('binary');
let img = ''
res.on('data', chunk => {
img += chunk
})
res.on('end', chunk => {
// 写到本地,(文件名,源文件,编码格式)
fs.writeFileSync('./test.jpg', img, "binary");
})
})
post数据
import http from 'http'
import URL from 'url'
async function post(url, dataStr) {
let urlObj = URL.parse(url)
return new Promise((resolve) => {
const req = http.request({
...urlObj,
method: 'POST', // 请求方式
headers: {
'Content-Length': dataStr.length, // post必须填写大小
'Content-type': 'application/x-www-form-urlencoded', // 编码格式
referer: url, // 如果资源有防盗链,则清空该属性
},
}, res => {
//设置编码格式
// res.setEncoding('binary');
let data = ''
res.on('data', chunk => {
data += chunk
})
res.on('end', chunk => {
resolve(data)
})
})
// 发送数据
req.write(dataStr);
req.end();
})
}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。