node.js发送get和post网络请求

 Hygge   2021-03-07 17:06   78 人阅读  0 条评论

这两天分析了一下摄图网,抓了一下官方的视频、图片、音乐下载的接口。


发现这种网站真的不错,有很多好看的图片和视频


贴一个官方的视频(有水印!)


整个过程中都是页面操作,接口有公开的 也有加密过的,算是第一次接触js逆向吧。


大概的思路挺简单的,就是在本地复现页面的js执行过程,得到某些加密参数即可。


复现的方式挺多的,但是在考虑范围内的只有js,python,因为都是脚本语言解释型。


但是python的基础功不是很好,而加密过程中运算写法比较乱,所以采用js直接复制过来照着改。


运算出结果参数后往往都是即时的使用,所以又要学一下js的网络请求


js发送Post请求

下面贴出来的是在抓取音乐接口的过程中写的例子,将目标音乐下载到本地




接口要求必须携带cookie。

let request = require('request')
let fs = require('fs')

var option = {
    method:'post',
    url:'https://699pic.com/music/download/',
    form:{
        'music_id':16005,
        'type':1,
        'sid':0,
        'page':0
    },
    headers:{
        'content-type': 'application/json; charset=utf-8',
        'cookie':'xxxx'
    }
}

request(option,(err,res,body)=>{
    let res1 = JSON.parse(body);
    request(res1.url).pipe(fs.createWriteStream(`./music/test1.mp4`))
    console.log('下载完成');
});

这么看还是挺简单的吧,跟jquery一样


js发送get请求


跟post基本相同,get的参数也是填写在form中,例子是拿本博客,可以拼接参数直接获取到文章页的响应。

let request = require('request')
var option = {
    method:'get',
    url:'https://blog.lisok.cn/',
    form:{
        id:27
    }
}
request(option,(err,res,body)=>{
    console.log(body);
})



本文地址:https://blog.lisok.cn/post/29.html
版权声明:本文为原创文章,版权归 Hygge 所有,欢迎分享本文,转载请保留出处!

 发表评论


表情

还没有留言,还不快点抢沙发?