python爬虫音乐犯法么

您所在的位置:网站首页 爬虫是否犯法 python爬虫音乐犯法么

python爬虫音乐犯法么

#python爬虫音乐犯法么| 来源: 网络整理| 查看: 265

没有多进程,没有任何黑科技的裸爬虫。练手用,爬虫获取到的数据皆为公开且非敏感的用户信息。

目录

一、思路

二、参数加密流程分析

三、代码实现

common.py (需要用到的函数)

demo.py (主程序)

四、数据

一、思路

在GitHub上已经有网易云音乐的node.js API(GitHub:https://github.com/Binaryify/NeteaseCloudMusicApi)。根据这个库提供的信息,可以很轻易的获取到网易云音乐获取某个用户的粉丝信息接口的参数(接口限制只能获取100个),进而继续获取这100个粉丝的粉丝…简单的几层循环嵌套就能很轻易的拿到十万级到百万级的用户数据(非敏感用户信息)。

二、参数加密流程分析

__getFormData(data, __get_random_str())

参数1:data是dict数据,包含了表单的各个字段和数据

参数2:16位的随机字符串

最终return的是一个dict,包含了params和encSecKey两个参数

params

__get_encText(args1, random16str)

参数1:args1是__getFormData函数的参数1,是dict数据,包含了表单的各个字段和数据

参数2:random16str是__getFormData函数的参数2,是一个16位的随机字符串

最终返回的是将参数加密后产生的params

__AES_encrypt(args1, args4)

参数1:args1是__get_encText函数的参数1,是dict数据,包含了表单的各个字段和数据

参数2:arg4是一个固定参数

最终返回的是将参数使用AES CBC加密后再进行一次base64加密产生的字符串

使用__AES_encrypt函数首先加密一次参数是(args1,args4)得到一个加密的字符串

在使用加密过一次的字符串作为参数1,和__get_encText函数传入的参数2 random16str 这个随机16位的字符串作为参数2继续加密1次

最终得到params

encSecKey

__get_encSecKey(random16str)

参数1:random16str是__getFormData函数的参数2,是一个16位的随机字符串

最终返回的是通过随机字符串产生的encSecKey

固定参数arg2

固定参数arg3

通过固定算法,使用随机16位的字符串random16str与这两个固定参数产生encSecKey

三、代码实现

common.py (需要用到的函数)

import base64

from Crypto.Cipher import AES



【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3