鱼C论坛

 找回密码
 立即注册
查看: 2799|回复: 1

[已解决]爬取网易云音乐热门评论地址一样该怎么办

[复制链接]
发表于 2023-4-22 22:23:05 | 显示全部楼层 |阅读模式

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

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

x
图片如下:

代码如下:
  1. # 爬取网易云音乐的热门评论
  2. import requests
  3. import json

  4. def get_hot_comments(res):
  5.     comments_json = json.loads(res.text)
  6.     hot_comments = comments_json['data']['hotComments']
  7.     with open('hot_comments.txt', 'w', encoding='utf-8') as file:
  8.         for each in hot_comments:
  9.             file.write(each['content'] + '\n')
  10.             file.write("----------------------------------------\n")
  11.             
  12. def get_comments(url):
  13.     # 传给它referer
  14.     # 当然,有时间的话将headers头部填写完整,那样会更好一些
  15.     headers = {
  16.         'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36',
  17.         'referer':'http://music.163.com/'
  18.         }
  19.     params = 'qwlzsLiNsFKaTuA35GUvfSbubkyePTPj2UxjaTe6KGyPkHwZGR48+RklK+UytoBSpYzR1208h4cx3iuy3nAVmsWI/L2rh8m+AZQ5dJhk+CrymGZdidV5OzDOBeKpqpIWZCCo2KgCoiRdXQ7vB2xwwZ32Qw8p0f3/9n/s3CnYDvnA/d3aVb8VyjtRaSd13ilnkHkt1f+Iadh27Vp9Fw62nQ1jdH7tswHEUmCm0+daLK73JYv1dSk4CnD6OqwgAtxeDih31OE4hP1cYrT2wS+ukA=='
  20.     encSecKey = '88a3e4f6e67fcd26e48988f1129187acfc6cfa14f873c9448c05d0fef2ed52c0825076672a8a115141b51ec15e00402b6105464871ae1bfcdd917f4d4a75093f3366a528cf655a0ac17fb9cce585e3c3e418cf8871844e78a3710a3353c53a50289fcf436a678c753a51a4d7cb45120c3d8a902a903d768d2b9ad88e6958743d'
  21.     data = {
  22.         "params":params,
  23.         "encSecKey":encSecKey
  24.         }
  25.    
  26.     res = requests.post(url, headers=headers, data=data)
  27.     return res

  28. def main():
  29.     url = input("请输入链接地址:(请包含http或https协议):")
  30.     res = get_comments(url)
  31.     get_hot_comments(res)
  32. if __name__=="__main__":
  33.     main()
复制代码
最佳答案
2023-4-22 22:33:56
本帖最后由 isdkz 于 2023-4-22 22:36 编辑

有一些接口不是通过get参数来调用的,所以url就没有区别,只有get参数才能在url上体现,这个是通过POST参数 params 和 encSecKey 来判断获取哪首音乐的字幕,

而 params 和 encSecKey 是在前端 js 代码中动态构造出来的,需要有一定的前端js功底来逆向构造逻辑,

你可以看一下这篇文章:https://blog.csdn.net/Estelle1412/article/details/121626794
微信图片_20230422221600.jpg
微信图片_20230422221613.jpg
屏幕截图 2023-04-22 220648.png
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2023-4-22 22:33:56 | 显示全部楼层    本楼为最佳答案   
本帖最后由 isdkz 于 2023-4-22 22:36 编辑

有一些接口不是通过get参数来调用的,所以url就没有区别,只有get参数才能在url上体现,这个是通过POST参数 params 和 encSecKey 来判断获取哪首音乐的字幕,

而 params 和 encSecKey 是在前端 js 代码中动态构造出来的,需要有一定的前端js功底来逆向构造逻辑,

你可以看一下这篇文章:https://blog.csdn.net/Estelle1412/article/details/121626794
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-10 00:42

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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