鱼C论坛

 找回密码
 立即注册
查看: 2186|回复: 3

爬取网易云音乐热评

[复制链接]
发表于 2020-10-20 09:33:48 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
问题描述:在爬取网易云歌曲热评的时候,我在打开热评链接的时候,所有歌曲的热评链接都是一样的,这样我怎么区分不同的音乐呢? 如图  
###看过小甲鱼爬取网易云热评的 应该知道我什么意思  
H67`)0Y3SIZE_S}@Q430A6C.png

就是在这张图里面 热评在get?csrf_token=这个文件里面 我想读取这个文件里面的热评信息, 但是我发现所有歌曲的这个文件的地址都是一样的,https://music.163.com/weapi/comm ... nts/get?csrf_token=
那么我怎么区分不同的歌曲呢?

##代码
import requests
from bs4 import BeautifulSoup
import json

def get_res(url):
    headers = {"user-agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.75 Safari/537.36"}
    params='Oh86j23sgDVlk1FaLiEQu7tVD / 5nlf61fbILFPKmNBb3KGm + JnhB6PMvXmGL6Tw7LClxV + am8 + Za7Mf61tsOxCp6mjvvJrBKvrsGVyMmjeAKr2eC0UZSP9BhdkZAFEMsdSDQgoUFpWt + LjY + VOapwrVuCRMu0wQdT7Nrj / V2hZ9M321MoAyJZZOGBDlrhAO / N6ru + u848vM9V68fkbLLpnPVezxgIIUCfNCH8e + hPZ + pPwjfQ + QfLVuTEZ9vvM8GdC + QxdvdK2Eky + LAsrKAhZZtkHdc2FWJItY + qom0B4k ='
    encSecKey='ad3aef05c75ce4dc2ec4dc4c98ef0d92e82f9315b7baa7ff80d02125ab2b9c404dd50f2d84ed12d41aa42753ffff33d4f45989a2f8f34aaf1167c21a15db1004c471ccaee5af087a8698c143d33c50c79af9b04f3a0fbfbefc9b2857bb10030a7eeb0f0cc5410381df6eee3f2fe8e48952b031badb8b70363cd92b6a7751cd84'

    data={'params':params,"encSecKey":encSecKey}

    get_url = 'https://music.163.com/weapi/comment/resource/comments/get?csrf_token='
    res = requests.post(get_url,headers=headers,data=data)
    return res

def get_com(res):
    comments_json = json.loads(res.text)
    hot_comments = comments_json["data"]["hotComments"]
    print(hot_comments[0]["user"]["nickname"])
    with open("text.txt","w",encoding="utf-8") as f:
        for each in hot_comments:
            f.write(each["user"]["nickname"]+"\n")
            f.write(each["content"]+"\n")
            f.write("--------------------------------\n")

def main():
    #url = 'https://music.163.com/#/song?id=1305364671'
    url = input("请输入歌曲链接:")
    res = get_res(url)
    get_com(res)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-10-20 10:29:28 | 显示全部楼层
补充一下   我在热评的那个网页里发现  虽然存储热评信息的地址是一样的 但是params和encSecKey 这两个值是不一样的 我改了这两个值之后 就可以获得这两个值对应的歌曲的热评 这很让人苦恼~~~~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-10-20 11:54:33 | 显示全部楼层
那怎么去获取每一首歌曲的params和encSecKey
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-10-20 12:26:49 | 显示全部楼层
是这种js代码生成的吧,要想找到来源,怕是很难
        this.getcdnInfo = function() {
            var params = {};
            if (gQ1x) {
                params.cdnBytes = gQ1x.info.cdnBytes;
                params.p2pBytes = gQ1x.info.p2pBytes
            } else if (iE2x) {
                var bNS6M = iE2x.loadedInfo();
                params.cdnBytes = bNS6M.cdnloaded;
                params.p2pBytes = bNS6M.p2ploaded
            }
            return params
        }
        ;
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-18 07:31

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表