第一次个人编程作业

一、作业介绍

博客班级 https://edu.cnblogs.com/campus/fzzcxy/2018CS
作业要求 https://edu.cnblogs.com/campus/fzzcxy/2018CS/homework/11732
作业目标 < 数据采集,数据处理,数据分析,git上传>
作业源代码 https://github.com/ErikaSakii/first-personal-work
学号 <211806152>

二、时间分布

步骤 时间
需求分析 5h
数据采集 4h
数据分析与处理 6h+
词云图展示 5h
代码上传 仍在解决

三、作业过程

1、数据采集

1)打开腾讯视频的《在一起》评论页面 按F12

2)打开v2 callback开头的一项观察


观察发现Preview中的last与Request URL中的cursor=后的数据相同以及Request URL中的cursor=1&_=后的数据是随着页数的增加+1

3)按照这个规律,开始爬取数据

思路是:①抓取url地址②遍历所有url③正则提取评论④保存结果为.json
关键代码

   url = 'https://coral.qq.com/article/5963120294/comment/v2?callback=_article5963120294commentv2&orinum=10&oriorder=o&pageflag=1&cursor=' + cursor + '&scorecursor=0&orirepnum=2&reporder=o&reppageflag=1&source=1&_=' + str(page)
   source = requests.get(url, headers=headers).content.decode()
   con='"content":"(.*?)"'
   comment = re.compile(con,re.S).findall(source)
   comments.append(comment)
   id='"last":"(.*?)"'
   cursor = re.compile(id,re.S).findall(source)[0]
   page = str(int(page) + 1)

2、数据处理(采用jieba分词器)

全自动安装jieba

之前没有用过jieba,不太清楚它的用法,看了好多篇博文,找了半天才找到可以执行的代码段。
分词处理

content = content.replace('\n',"").replace("\u3000","")
content_late = jieba.lcut(content) 
content_late = ' '.join(text_late)
words = open("E:\erika\words.txt",encoding="utf8").read().split("\n")#words.txt是我自己写的需要过滤的一些词以提高分词效率

3、生成词云图(采用worldcloud)

结合js插件echarts.js和echarts-wordcloud.min.js完成yuncitu.html

4、上传代码到Github

这部分耗费了我最多的时间,按着别的同学提示的步骤来,一直没发现问题出在哪里。。。 将仓库克隆到本地后,创建了分支并comnit,最后push。结果一直push不上去。。。

就这样过了好久好久。。。我终于发现问题所在,是我在克隆仓库的时候忘了加.git 导致的错误!然后成功push了源代码以及其他文件!太开心了!

四、总结

这次作业对我真的是很有挑战性,之前没有接触过爬虫(物联网飘过),所以在完成这次作业的过程,被卡了很多次,很多地方不熟悉,然后也请教了很多大数据的同学,他们很热心的帮助的去完成这次作业,非常感谢他们!谢谢!我会认真还带有疑惑的问题的!加油。

posted @ 2021-02-26 22:17  ErikaSakii  阅读(45)  评论(2编辑  收藏  举报