爬取网易云音乐评论

Intro

一直想自己动手用框架搭起来一个搜索引擎,但是也一直不知道从哪里开始下手比较好。

最近一直在网易云音乐上听歌,决定从网易云上把评论全部爬下来,用评论做一个垂直搜索

Path

说干就开始吧 首先第一步得先把网易云上的评论爬下来吧,没有评论资源怎么开始干活啊!

就拿我最喜欢的歌手 Eason 陈奕迅 做例子吧

首先打开网页版的网易云音乐 搜索 十年 这首歌~
十年-Eason

接下来打开我们浏览器的开发者工具
这里写图片描述

仔细找找以后果然发现了这个API
https://music.163.com/weapi/v1/resource/comments/R_SO_4_66842?csrf_token=
还是一个挺奇怪的API哈,我们应该能看出来 R_SO_4_66842 是这首歌的ID,翻看了一下其他歌曲,果然 都是通过这个API去获取评论的
后面的csrf_token应该是防止跨域访问攻击的,不在我们讨论的范围

仔细看了一下这个API,需要哪些参数
这里写图片描述
需要两个什么鬼的参数
一个是params 另一个是encSecKey
显然网易云为了防止爬虫已经做了很多加密工作了,这就很难受

正当我走投无路的时候,发现了这篇文章!
https://www.zhihu.com/question/36081767

真大神啊。。。人家已经把参数和什么全部解析出来了
于是简单的“改装阅读”一下代码

EncryptUtil.py:

# -*- coding:utf-8 -*-
import os
import base64
import time
from Crypto.Cipher import AES

def createSecretKey(size):
    return (''.join(map(lambda xx: (hex(ord(xx))[2:]), os.urandom(size))))[0:size]

def aesEncrypt(text, secKey):
    pad = 16 - len(text) % 16
    text = text + pad * chr(pad)
    encryptor = AES.new(secKey, 2, '0102030405060708')
    ciphertext = encryptor.encrypt(text)
    ciphertext = base64.b64encode(ciphertext)
    return ciphertext

def rsaEncrypt(text, pubKey, modulus):
    text = text[::-1]
    rs = int(text.encode('hex'), 16)**int(pubKey, 16)%int(modulus, 16)
    return format(rs, 'x').zfill(256)

  • 5
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值