首页 > 其他分享 >07-反调试和周杰伦下载

07-反调试和周杰伦下载

时间:2024-02-11 10:13:55浏览次数:28  
标签:07 url res mp3 zz123 requests data 周杰伦 调试

本节目标:解决无限反调试,下载周杰伦歌曲

https://zz123.com

1.反调试

image-20231204144831334

2.搜索列表

image-20231204144210454

import requests

res = requests.post(
    url="https://zz123.com/ajax/",
    data={
        "act": "search",
        "key": "周杰伦",
        "lang": "",
        "page": 1
    }
)
res_dict = res.json()
data_list = res_dict['data']
for item in data_list:
    print(item)

3.MP3下载

import requests

res = requests.get(url="https://zz123.com/xplay/?act=songplay&id=vakas", allow_redirects=False)
mp3_url = res.headers['Location']

res = requests.get(url=mp3_url)

with open("晴天.mp3", mode='wb') as f:
    f.write(res.content)

4.批量下载

image-20231204144552025

import requests
import requests

res = requests.post(
    url="https://zz123.com/ajax/",
    data={
        "act": "search",
        "key": "周杰伦",
        "lang": "",
        "page": 1
    }
)
res_dict = res.json()
data_list = res_dict['data']
for item in data_list:
    mp3_id = item['id']
    mp3_name = item['mname']

    # 获取真正mp3地址
    res = requests.get(
        url=f"https://zz123.com/xplay/?act=songplay&id={mp3_id}",
        allow_redirects=False
    )
    real_mp3_url = res.headers['Location']

    # 下载
    res = requests.get(url=real_mp3_url)
    with open(f'{mp3_name}.mp3', mode='wb') as f:
        f.write(res.content)

标签:07,url,res,mp3,zz123,requests,data,周杰伦,调试
From: https://www.cnblogs.com/fuminer/p/18013186

相关文章

  • 2.1.4 程序基本概念——编辑、编译、解释、调试的概念
    编辑概念C++程序的编辑即为,对代码的编写过程,完成这种过程需要借助相关软件,该类软件叫做C++代码编辑器。编译和解释概念计算机只能识别由0、1组成的二进制代码,称为机器码。所以我们现在使用高级编程语言编写的程序就需要一个翻译过程,将其转换成计算机认识的二进制代码,而这个翻......
  • [COCI2007-2008#1] ZAPIS 题解
    题目传送门前置知识区间型动态规划思考过程这题也算是一道很经典的问题了(?)。看见\(n\leq200\),不难想到复杂度为\(O(n^3)\)的区间型动态规划。题面中有这么一段话。空串是规则括号序列。如果\(\textttA\)是规则括号序列,那么\(\texttt{(A)[A]{A}}\)都是规则括号......
  • dl-cdr-fai-pt-merge-07
    面向程序员的FastAI和PyTorch深度学习(八)原文:DeepLearningforCodersWithFastaiandPytorch译者:飞龙协议:CCBY-NC-SA4.0第三部分:深度学习的基础。第十二章:从头开始的语言模型我们现在准备深入…深入深度学习!您已经学会了如何训练基本的神经网络,但是如何从那里创......
  • 07_TIM定时中断
    TIM定时中断TIM简介定时器类型基本定时器通用定时器高级定时器基本定时器仅支持向上计数:0->重装值->发起中断通用定时器和高级定时器支持向上计数,向下计数,中央对齐计数向下计数:重装值->0->发起中断中央对齐计数:0->重装值->发起中断->0->发起中断基本定时器只......
  • 读千脑智能笔记07_人工智能的未来(中)
    1.      机器智能的未来1.1.        没有任何技术原因阻止我们创造智能机器1.1.1.          障碍在于我们缺乏对智能的理解,也不知道产生智能所需的机制1.2.        历史表明,我们无法预测将推动机器智能向前发展的技术进步1.2.1.    ......
  • 【调试】pstore原理和使用方法总结
    什么是pstorepstore最初是用于系统发生oops或panic时,自动保存内核logbuffer中的日志。不过在当前内核版本中,其已经支持了更多的功能,如保存console日志、ftrace消息和用户空间日志。同时,它还支持将这些消息保存在不同的存储设备中,如内存、块设备或mtd设备。为了提高灵活性和可扩......
  • 嵌入式中,日志调试法的一些规则
    https://mp.weixin.qq.com/s/yTInDBFbI0oM5bowx990lw在我们嵌入式开发中,打印日志是最常用的一种调试手段。合理地打印日志,可以帮助我们快速地分析问题。本篇文章我们来汇总一些嵌入式打log的一些规则。1.什么操作下加日志?(1)错误处理对于不能恢复的严重错误,日志内容应详细到......
  • C++实现memcpy和memmove(含调试程序)
    #include<iostream>#include<string>usingstd::cout;usingstd::endl;void*mymencpy(void*dest,void*src,size_tnum){ char*d=(char*)dest; char*s=(char*)src; while(num--){ *(d++)=*(s++); } returnd;}void*mymenmove(vo......
  • Linux下gdb如何调试coredump文件
    目录简介示例简介在Linux下,你可以使用GNU调试器(GDB)来调试coredump文件。Coredump文件是在程序崩溃时由操作系统生成的,它包含了程序崩溃时的内存内容、寄存器状态和其他相关信息。下面是在Linux下使用GDB调试coredump文件的步骤:确保你的系统已经安装了GDB。如果没有安装,你......
  • 【题解】P5907 数列求和加强版 / P4948 数列求和
    本题解是对warzone的题解的补充。题意:求\[\sum_{i=1}^ni^ka^i\]普通版:\(k\leq2\times10^3\)。加强版:\(k\leq10^7\)。首先先考虑普通版。\[\begin{aligned}\sum_{i=1}^ni^ka^i&=\sum_{i=1}^na^i\sum_{j=0}^k{k\bracej}i^{\underline{j}}\\&=\sum_{j=0......