怎么查看一个人写的所有网易云评论?

2020-04-21 00:28发布

2条回答
大泽九章
2楼 · 2020-07-16 18:22


网易云音乐评论区几大未解之谜。他和她究竟有没有在一起,考研的究竟考上了没有,努力的人成功了吗,他(她)真的能看到留言吗,那些文艺青年写的究竟是不是抄的。网易评论里还有什么是我们不知道的,本场Chat将带大家爬取网易云音乐的评论并生成词云来一探究竟。主要含以下内容:对爬虫做一个讲解;分析网易云音乐的网页结构;反扒措施分析;高效编写程序,避免代码中的不规范;使用Jieba进行分词,生成词云。其中我们会用到的第三方库如下:BeautifulSoup;Selenium;WordCloud;Matplotlib;Jieba;Numpy;PIL。阅读全文:http://gitbook.cn/gitchat/activity/5c4fef5be156003da327cebf您还可以下载CSDN旗下精品原创内容社区GitChatApp,阅读更多GitChat专享技术内容哦。

青皮桔味的意境
3楼 · 2021-11-17 10:43

具体实践

接口分析

思路想好了,就去做,首先肯定是分析接口,结果却发现接口发生了变化,之前的接口是不进行加密的,现在的接口每次的请求都带上了 encSecKey 和 params 参数,显然是加密了,于是在Github上发现了这个,网易云音乐新版WebAPI分析,是Python实现的,重要的部分是aesEncrypt和rsaEncrypt两个加密的部分,完成这部分之后呢,后续工作就简单的多了。

实践方案

考虑到用户歌单歌曲数量比较多的情况,在爬取歌曲评论的过程中,开启多进程爬取是必要的,但又考虑到机器性能的原因,队列执行爬取功能也是必须的,不然机器可能在进程爆满的情况效率各方面实在是堪忧啊。

为了考虑以后其它新功能的开发,在此采用了Laravel5.4+PHP7.1环境下的开发,一方面是Laravel开发的效率,另一方面Laravel在我提到的几个问题上面都有相应的解决方案,数据的爬取则是采用了Laravel的artisan命令行,对于多进程则是采用了进程控制扩展PCNTL,但同时这个多进程爬取的过程则是放到了redis驱动下的队列中,同时使用了Supervisor进行队列的监控,整个代码我已经开放到Github。

clone 下来后配置完成后执行:

也就是说我们只要通过模拟浏览器向网易云服务器发送post请求就能获得评论!

这里还要注意这个post的链接,R_SO_4_ 之后跟的一串数字实际上就是这首歌曲对应的id;而且这里需要传入的参数,也得好好分析一下(在后面)

所以现在目标就是:找到最新的所有歌单 -> 对每一个歌单,遍历其中的所有歌曲,获取网页源码中的所存在歌曲的id->对每一个首歌曲通过其id,向服务器post请求(带上参数),得到想要的评论

这里还有一个判断,根据评论总条数除以每页20条的评论,判断是否有余数,可以获得最终评论的总页数,并且我们也可以发现,热门评论只在第一页.传入三个参数,分别为comment_TatalPage ,postUrl, headers1,对应评论总页数,postUrl就是postUrl…以及请求头对第一页获取热评以及评论,对其他页获取普通评论;以及获取其他数据,添加到列表中

这一步的目的就是获取歌单里歌曲的id,遍历对每一个歌曲(即对应的id),获取其歌曲的url,歌曲名;根据id,构造postUrl 通过对第一页的post(关于如何post得到想要的信息,在后面会讲到),获取评论的总条数,及总页数;以及调用获取歌曲评论的方法;

这里的getPostApi函数传入的三个参数分别为,页数(因为每页的post附带的参数params不相同),postURL以及请求头; 

这里data=param,就是需要的参数 

然后在fiddler中重定向core.js,修改本地core.js的内容,可以打印上面的参数,结果第一次可以在控制台看到打印的结果

php artisan netease:playlist 123456

将123456替换成网易云音乐用户的 id,等待结束后,表 user_comments 就能看到用户的评论了。


相关问题推荐

  • 什么是Python列表2020-12-03 10:47
    回答 20

    在python中列表(list)是使用最频繁的数据类型,在其他语言中通常叫做数组。列表由一系列按特定顺序排列的元素组成。你可以创建包含字母表中所有字母、数字0~9或所有家庭成员姓名的列表;也可以将任何东西加入列表中,其中的元素之间可以没有任何关系。...

  • 回答 16

    简单来讲,爬虫就是一个探测机器,它的基本操作就是模拟人的行为去各个网站溜达,点点按钮,查查数据,或者把看到的信息背回来。就像一只虫子在一幢楼里不知疲倦地爬来爬去。...

  • 回答 17

    因为Python可以做数据分析  数据挖掘,数据挖掘的话简单来说就是爬虫工程师

  • 回答 13

    1)学习爬虫,可以私人订制一个搜索引擎,并且可以对搜索引擎的数据采集工作原理进行更深层次地理解。有的朋友希望能够深层次地了解搜索引擎的爬虫工作原理,或者希望自己能够开发出一款私人搜索引擎,那么此时,学习爬虫是非常有必要的。简单来说,我们学会了...

  • 回答 4

    大部分数据都是可以爬的,不过有些网站对数据的加密做的非常好,在解析的过程中要消耗很长的时间。

  • 爬虫是什么?2020-08-26 10:11
    回答 10

    抓取数据,进行统计和分析

  • 成都爬虫好找工作吗2020-10-14 10:23
    回答 12

    在成都找网络爬虫工作也是可以的,自己可以先到招聘软件上看看当地招聘的需求量以及薪资待遇水平怎么样,要是能达到自己的预期效果可以在当地工作,要不可以到北上广深找工作,就业机会能更多些。...

  • 回答 9

    两种方式,一种是MySQL自带的命令行窗口,一种是图形用户管理工具,前者类似于一个cmd窗口,日常管理维护数据库不是很方便,后者就是一个图形用户管理软件,种类繁多,使用起来也相对容易一些...

  • 回答 4

    不可以所有编程最起码都得学函数,分支,循环之后才可以编写代码

  • 回答 2

    一台主机  多台从机

  • 回答 3

    一、分布式爬虫架构在了解分布式爬虫架构之前,首先回顾一下Scrapy的架构,如下图所示。Scrapy单机爬虫中有一个本地爬取队列Queue,这个队列是利用deque模块实现的。如果新的Request生成就会放到队列里面,随后Request被Scheduler调度。之后,Request交给Down...

  • 回答 7

    代理ip网址http://www.goubanjia.com/http://www.ip181.com/https://www.kuaidaili.com/python 环境安装requests库安装bs4库proxies设置代理服务器地址proxies = {'http':  'http://61.155.164.110:3128'}http://www.goub......

  • 回答 2

    import  requestsimport  jsonfrom bs4 import BeautifulSoupfrom    urllib.request import urlretrieve#构造函数def sk():    #请求头    header={        'user-Agent':'Mozilla/5.0 (Windows NT 10.0; W...

  • 回答 3

    针对字符串中本身含有双引号,我们可以利用单引号进行字符串的定义来解决这个问题。使用单引号作为字符串的界限就不会引起识别异常问题,保证字符串的合理定义

  • 回答 2

    要用unicode编码来替换。

没有解决我的问题,去提问