柳祖豪---第一次个人编程作业
博客班级 | https://edu.cnblogs.com/campus/fzzcxy/2018CS |
---|---|
作业要求 | https://edu.cnblogs.com/campus/fzzcxy/2018CS/homework/11732 |
作业目标 | 采集腾讯视频里电视剧《在一起》的全部评论信息,把所有数据下载到本地保存到json文件里面comments.json, 页面用js读取文件,将采集到的评论信息做成词云图 |
作业源代码 | https://github.com/SLyin/first-personal-work/tree/main |
学号 | 211803121 |
- 作业流程
步骤 | 做法 | 耗时 |
---|---|---|
1. 数据采集 | 使用Python爬虫,爬取腾讯视频电视剧《在一起》的评论 | 2h |
2. 数据处理 | 把爬取的数据保存到json文件里面comments.json,利用jieba进行分词处理 | 1h |
3. 绘制词云图 | 利用echarts.js制作词云 | 4h |
4. 代码上传Github | 利用git上传 | 1h |
-
1.爬取腾讯视频电视剧《在一起》的评论
(1).分析网页源代码,寻找规律
-
如下图所示,我们每点击一次“查看更多评论”
右侧的的状态栏中就会增加新的响应
-
如下图所示
这是我点击三次查看更多评论之后,所显示的响应
-
凭借我们当前所发现的,我们知道评论使用了Ajax异步加载的技术
一般Ajax都是在JS里面,我们现在随便点击一个JS的url
-
点击进入后我们发现,可以知道每个JS的URL就是评论的存放页面
-
点击每个js的url我们可以发现
这些就是我们每次点击“查看更多评论”之后所显示的评论
可以理解为每个js的url中相当于某一页的评论
这时我们开始寻找这些存放评论的网页中所蕴含的规律
我通过观察多个url发现每个url中除了cursor= 与_=之后的数字是变动的其他都是不变的。
我们可以得出结论url不同的地方有两处:一是cursor=?;二是_=?。
我们观察下面这些图:
-
我们可以知道cursor的初始值为0,第二个的url中的cursor为第一个url中preview里last的值。
而_=可以看成页数没点击一次查看更多评论,url就会更新下一页, _=的值加一。(我这里显示的 _=初始值为1614143634414)
到这里我们就可以开始编写爬虫代码了(2)编写代码,爬取评论保存至comments.json文件中。
-
nice!数据获取成功!
-
2.数据处理,利用jieba分词,提取高频词汇
-
因为这是我第一次利用jieba进行分词处理
所以第一步要先往我的pycharm里面导入jieba库
我这里附清华大学的镜像文件链接及安装代码
代码:pip install -i https://pypi.tuna.tsinghua.edu.cn/simple jieba
这样我们就可以开始编写代码了
也是因为第一次使用jieba,所以上网查阅了许多资料
下图就是利用jieba分词进行高频词汇统计的代码
-
这是得到的高频词文本,共60词
-
这样我们就得到了分析好的数据了,可以开始绘制词云图了!
-
3.数据展示,利用js插件echarts.js,绘制词云图
-
不得不说,自学的时候没有高人点拨你,真的太难了,也亏我自己弄的出来
下载完echarts5.0的版本之后发现根本没有词云图wordcloud的插件
又花了好多时间去找插件,找到之后又发现根本不会打代码,只好找度娘
哎,不多说了直接展示
-
4.将代码上传到Github
(1)右建文件夹,点击Git Bash Here
(2)在命令行中输入git init,使该文件夹进入git的管理
(3)连接自己的github库
(4)将刚刚连接的库的内容复制到该文件夹
(5)进入first-personal-work文件夹,查看分支(我这里建库时,已经创建好分支)
(6)更换chart分支
(7)输入git add <需要准备上传的文件名>,准备上传文件(也可以输入 git add . ,直接将文件夹全部内容准备上传)
(8)写提交说明(Git 每次提交代码,都要写 Commit message【提交说明】,否则就不允许提交。)
(9)上传到github库(该命令git push -u origin,master处可更换其他分支,如改为chart)
(10)重复789三个步骤,将其他代码上传 (共5次Commit message,并且全为英文)
(11)将两个分支分别合并到主分支,合并后的分支不要删除(切换到主干main上【git checkout main】,合并某个分支到主干master【git merge chart】,上传代码【git push】.)
-
5.参考资料
廖雪峰博客-git
Commit message 和 Change log 编写指南
Apache ECharts
Python爬取腾讯视频评论的思路详解
运用jieba库进行词频统计
Echars的下载和使用
使用echarts-wordcloud生成词云