简单的网易云音乐热门评论爬虫

注:本文没有什么技术含量,就是一个普通的AJAX数据爬虫,适合新手练习

目标:爬取网易云音乐歌曲的热门评论

分析:本次爬虫不难,思路是请求和获取数据,网易云音乐的评论是通过AJAX的方式进行加载的,打开chrome进行分析就很容易分析出来,唯一难点是它的传送数据是加密的,如果不知道加密的方法的话,就无法构造请求。

https://music.163.com/weapi/event/user/permission?csrf_token=

这个就是用浏览器打开网易云音乐时,浏览器调用的API,这个API是要用到加密算法的,后面经过搜索,发现了一个更为简单的API

https://music.163.com/api/v1/resource/comments/R_SO_4_<song_id>

这个API的请求不需要进行加密,可以直接获取得到歌曲的评论,虽然返回的不是所有评论,但是这次的目标是获取歌曲的热门评论,返回的数据中包含有热门评论,可以实现我们的目标,足够了。

思路:思路和普通的爬虫思路一样,发送请求,获取数据,分析数据,存取数据

环境:python3.6.3,MongoDB4.0.0

模块:request,json,pymongo,time,re

代码:

# -*-coding:utf-8-*-
# Author: AnswerW3I
# version:3.6.3
import requests
import json
import time
import pymongo
import reclass Spider(object):def __init__(self, song):self.song_id = songself.song_url = "https://music.163.com/api/v1/resource/comments/R_SO_4_" + self.song_idself.headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:56.0) Gecko/20100101 Firefox/56.0','Referer': 'http://music.163.com'
}self.client = pymongo.MongoClient('localhost', port=27017)self.db = self.client.testself.collection = self.db.hotCommentsself.session = requests.session()self.session = requests.get(self.song_url, headers=self.headers)self._save()def _get_comments(self, json_data):# get the json and find the hotcommentsdata = json.loads(json_data)for item in data.get("hotComments"):yield {'comment': item.get("content"),'likes': item.get("likedCount"),'user': item.get("user").get("nickname"),'date': self._get_time(str(item.get("time"))[:10])}def _get_time(self, timeStamp):timeArray = time.localtime(int(timeStamp))return time.strftime("%Y-%m-%d", timeArray)def _save(self):for hotComment in self._get_comments(self.session.text):self.collection.insert(hotComment)print("save successfully")def main():song_url = input("Song_Url:")a = re.compile('id=\d+')song_id = a.findall(song_url)[0].replace('id=','')print(song_id)if __name__ == "__main__":main()

运行效果:尝试爬取周杰伦的《晴天》

总结:内容没有什么技术含量,和普通的爬虫思路一样,不过这个Demo是爬取单首歌曲的,如果爬取歌曲过多,可能要做个代理池防止IP被封。

转载于:https://www.cnblogs.com/AnswerW3I/p/9460606.html

简单的网易云音乐热门评论爬虫相关推荐

  1. python听歌识曲爬虫_Python爬取网易云音乐热门评论的搜索结果-阿里云开发者社区...

    网易云音乐评论爬虫(三):爬取歌曲的全部评论 用过网易云音乐听歌的朋友都知道,网易云音乐每首歌曲后面都有很多评论,热门歌曲的评论更是接近百万或者是超过百万条.现在我就来分享一下如何爬取网易云音乐歌曲的 ...

  2. 网易云音乐歌曲评论爬虫(附python源码)

    ♚转载: 作者:志颖 ,一个狂热的python爬虫热爱者 GitHub:github.com/zyingzhou 用过网易云音乐听歌的朋友都知道,网易云音乐每首歌曲后面都有很多评论,热门歌曲的评论更是 ...

  3. 网易云音乐歌曲评论爬虫(附源码)

    数据科学俱乐部 中国数据科学家社区 ♚ 作者:志颖 ,一个狂热的python爬虫热爱者 GitHub:github.com/zyingzhou 用过网易云音乐听歌的朋友都知道,网易云音乐每首歌曲后面都 ...

  4. Python 爬取百万网易云音乐热门评论

    点击上方"程序员大咖",选择"置顶公众号" 关键时刻,第一时间送达! 前言 最近在研究文本挖掘相关的内容,所谓巧妇难为无米之炊,要想进行文本分析,首先得到有文本 ...

  5. Python 获取 网易云音乐热门评论

    来自:lyrichu - 博客园 链接:www.cnblogs.com/lyrichu/p/6635798.html(点击尾部阅读原文前往) 已获转载授权 最近在研究文本挖掘相关的内容,所谓巧妇难为无 ...

  6. Python 获取 网易云音乐热门评论(python2/python3代码)

    为方便学习,主要内容转自:http://www.cnblogs.com/lyrichu/p/6635798.html,感谢原作,如有侵权,联系删除 获取文本的方式有很多,比如从网上下载现成的文本文档, ...

  7. Python 获取网易云音乐热门评论,周杰伦歌曲晴天

    最近在研究文本挖掘相关的内容,所谓巧妇难为无米之炊,要想进行文本分析,首先得到有文本吧.获取文本的方式有很多,比如从网上下载现成的文本文档,或者通过第三方提供的API进行获取数据.但是有的时候我们想要 ...

  8. 使用爬虫抓取网易云音乐热门评论生成好玩的词云

    互联网爬虫是一个很有意思的技术,借由爬虫,我们可以做到很多好玩的事情--这其中就包括爬取评论. 词云就是个更好玩的技术,通过技术方法分析词语出现频率,生成可视化的图形,将文字内容用图形呈现,想想就很意 ...

  9. PHP爬虫爬取网易云音乐热门评论

    说起爬虫,恐怕第一个想到的都是Python,PHP的就少之又少. 得空闲下来,自己用PHP做了一个爬虫,爬取网易云音乐的热门评论. 效果图: 下面简单说一下思路 首先,在网易云官网排行榜内,审查元素, ...

最新文章

  1. 内存管理模拟程序c语言,C语言 内存管理详解
  2. python流程图-python中的图表渲染(流程图可视化)
  3. ZoomBlur 聚焦模糊效果Shader(URP)
  4. 根据二叉树的先序和中序求后序遍历
  5. linux top 上次更新到现在的cpu时间占用百分比,使用top命令分析linux系统性能的详解...
  6. BootstrapTable单元格宽度调整:colResizable()方法
  7. 《JavaSE基础教程》电子版书正式发布,欢迎大家下载
  8. 分布式计算的基本概念
  9. 2017年总结和2018年计划
  10. 木讷的程序员需要知道的事情 (五)
  11. 学习Pandas(Kaggle)
  12. 网页打开QQ链接,进行临时会话
  13. 东方财富:公司总经理陶涛辞任 其实将担任总经理职务
  14. 大神爆料:红米K30S至尊纪念版和红米10XPro哪个好-哪个更值得入手-参数对比
  15. 如何在sRGB和CIEXYZ之间进行转换
  16. ReadMe 好看指南
  17. 手机cpu什么型号支持鸿蒙系统,华为鸿蒙2.0系统支持的手机型号(图文)
  18. 苹果6手机服务器停止响应,iphone6被停用怎么办?苹果6被停用解决方法汇总
  19. 用Requests下载百度一页图片,以下载芳心纵火犯为例
  20. 手把手教你用Python分析豆瓣电影——以《我不是药神》《邪不压正》为例

热门文章

  1. 巧用Netstat排除网络故障
  2. linux mint安装搜狗输入法
  3. Python核心编程第二版第五章数字(课后习题)----我的答案
  4. 虾皮系统老出现服务器错误,Shopee卖家须知:虾皮系统什么状况会自动取消订单?...
  5. 画火柴人动画的手机软件_火柴人动画制作软件(Pivot Stickfigure Animator)2.25 中文版附教程...
  6. Mybatis-Cause:无效的主机/绑定变量名 The error may involve -Inline
  7. java中Hashset集合删除元素_从Java中的HashSet中删除单个元素
  8. Android Poco初始化时,不大起眼但可能存在坑点的参数们
  9. c#编写activeX控件详细教程,底部附有下载地址
  10. 哥,8年不见,您啥时候回来?度娘想死您了!