简单的网易云音乐热门评论爬虫
简单的网易云音乐热门评论爬虫
注:本文没有什么技术含量,就是一个普通的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
简单的网易云音乐热门评论爬虫相关推荐
- python听歌识曲爬虫_Python爬取网易云音乐热门评论的搜索结果-阿里云开发者社区...
网易云音乐评论爬虫(三):爬取歌曲的全部评论 用过网易云音乐听歌的朋友都知道,网易云音乐每首歌曲后面都有很多评论,热门歌曲的评论更是接近百万或者是超过百万条.现在我就来分享一下如何爬取网易云音乐歌曲的 ...
- 网易云音乐歌曲评论爬虫(附python源码)
♚转载: 作者:志颖 ,一个狂热的python爬虫热爱者 GitHub:github.com/zyingzhou 用过网易云音乐听歌的朋友都知道,网易云音乐每首歌曲后面都有很多评论,热门歌曲的评论更是 ...
- 网易云音乐歌曲评论爬虫(附源码)
数据科学俱乐部 中国数据科学家社区 ♚ 作者:志颖 ,一个狂热的python爬虫热爱者 GitHub:github.com/zyingzhou 用过网易云音乐听歌的朋友都知道,网易云音乐每首歌曲后面都 ...
- Python 爬取百万网易云音乐热门评论
点击上方"程序员大咖",选择"置顶公众号" 关键时刻,第一时间送达! 前言 最近在研究文本挖掘相关的内容,所谓巧妇难为无米之炊,要想进行文本分析,首先得到有文本 ...
- Python 获取 网易云音乐热门评论
来自:lyrichu - 博客园 链接:www.cnblogs.com/lyrichu/p/6635798.html(点击尾部阅读原文前往) 已获转载授权 最近在研究文本挖掘相关的内容,所谓巧妇难为无 ...
- Python 获取 网易云音乐热门评论(python2/python3代码)
为方便学习,主要内容转自:http://www.cnblogs.com/lyrichu/p/6635798.html,感谢原作,如有侵权,联系删除 获取文本的方式有很多,比如从网上下载现成的文本文档, ...
- Python 获取网易云音乐热门评论,周杰伦歌曲晴天
最近在研究文本挖掘相关的内容,所谓巧妇难为无米之炊,要想进行文本分析,首先得到有文本吧.获取文本的方式有很多,比如从网上下载现成的文本文档,或者通过第三方提供的API进行获取数据.但是有的时候我们想要 ...
- 使用爬虫抓取网易云音乐热门评论生成好玩的词云
互联网爬虫是一个很有意思的技术,借由爬虫,我们可以做到很多好玩的事情--这其中就包括爬取评论. 词云就是个更好玩的技术,通过技术方法分析词语出现频率,生成可视化的图形,将文字内容用图形呈现,想想就很意 ...
- PHP爬虫爬取网易云音乐热门评论
说起爬虫,恐怕第一个想到的都是Python,PHP的就少之又少. 得空闲下来,自己用PHP做了一个爬虫,爬取网易云音乐的热门评论. 效果图: 下面简单说一下思路 首先,在网易云官网排行榜内,审查元素, ...
最新文章
- 内存管理模拟程序c语言,C语言 内存管理详解
- python流程图-python中的图表渲染(流程图可视化)
- ZoomBlur 聚焦模糊效果Shader(URP)
- 根据二叉树的先序和中序求后序遍历
- linux top 上次更新到现在的cpu时间占用百分比,使用top命令分析linux系统性能的详解...
- BootstrapTable单元格宽度调整:colResizable()方法
- 《JavaSE基础教程》电子版书正式发布,欢迎大家下载
- 分布式计算的基本概念
- 2017年总结和2018年计划
- 木讷的程序员需要知道的事情 (五)
- 学习Pandas(Kaggle)
- 网页打开QQ链接,进行临时会话
- 东方财富:公司总经理陶涛辞任 其实将担任总经理职务
- 大神爆料:红米K30S至尊纪念版和红米10XPro哪个好-哪个更值得入手-参数对比
- 如何在sRGB和CIEXYZ之间进行转换
- ReadMe 好看指南
- 手机cpu什么型号支持鸿蒙系统,华为鸿蒙2.0系统支持的手机型号(图文)
- 苹果6手机服务器停止响应,iphone6被停用怎么办?苹果6被停用解决方法汇总
- 用Requests下载百度一页图片,以下载芳心纵火犯为例
- 手把手教你用Python分析豆瓣电影——以《我不是药神》《邪不压正》为例
热门文章
- 巧用Netstat排除网络故障
- linux mint安装搜狗输入法
- Python核心编程第二版第五章数字(课后习题)----我的答案
- 虾皮系统老出现服务器错误,Shopee卖家须知:虾皮系统什么状况会自动取消订单?...
- 画火柴人动画的手机软件_火柴人动画制作软件(Pivot Stickfigure Animator)2.25 中文版附教程...
- Mybatis-Cause:无效的主机/绑定变量名 The error may involve -Inline
- java中Hashset集合删除元素_从Java中的HashSet中删除单个元素
- Android Poco初始化时,不大起眼但可能存在坑点的参数们
- c#编写activeX控件详细教程,底部附有下载地址
- 哥,8年不见,您啥时候回来?度娘想死您了!