马鑫---第一次个人编程作业

博客班级 2018级计算机和综合实验班
作业要求 第一次个人编程作业
作业目标 数据采集与处理,数据可视化--词云图,git的使用
作业源代码 first-personal-work
学号 211806180

一、总体规划

  • 简单的时间记录
时间分布 分析思路 编写代码 代码行数 知识学习
10h+ 1h+ 5h+ 100+ 4h+

二、实战演练

  1. 数据采集
  • 采集腾讯视频里电视剧《在一起》的全部评论信息
    信息采集哪家强,专业技术靠爬虫
    好家伙,老本行,话不多说直接开爬
  1. 打开评论看到加载更多,第一时间想到异步加载,经过对比可以发现发现url不同的地方在于:cursor=和_=
    ur1和url2对比图
  2. 找到规律就非常好写代码:
    思路:抓取url地址 --> 遍历所有url --> 正则提取评论 --> 保存结果为json
    主要代码:
for i in range(0, 1024):
   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)
  1. 数据处理
  • 用jieba进行分词,统计评论中的高频词及数量
    这部分第一次接触,先学习了一下jieba的基础
    代码部分借鉴了一位大神(百度的方法链接找不到了sorry!)
    主要功能:去除了空格回车等字符,让分词更高效
    主要代码:
cut_words=""
for line in open('./comments.json',encoding='utf-8'):
    line.strip('\n')
    line = re.sub("[A-Za-z0-9\:\·\—\,\。\“ \”]", "", line)
    seg_list=jieba.cut(line,cut_all=False)
    cut_words+=(" ".join(seg_list))
all_words=cut_words.split()
print(all_words)
c=Counter()
for x in all_words:
    if len(x)>1 and x != '\r\n':
        c[x] += 1
  1. 数据分析展示
  • 将采集到的评论信息做成词云图
    结合js插件echarts.js和echarts-wordcloud.min.js完成index.html
    参考了大神的方法用评论词自定义了一个"牛"形状的词云图
    词云图

三、GitHub

大前提:完成初始配置
1. 克隆仓库到本地: git clone https://github.com/Auxim10/first-personal-work.git
2. 进入克隆到本地的文件夹: cd first-personal-work
3. 新建分支: git switch -c crawl
4. 将上传的文件复制到文件夹
5. 上传文件: git add .
6. 提交: git commi -m "提交信息"
7. 上传: git push -u origin crawl
8. 重复3-7操作完成另一分支
9. 合并分支: git merge crawl;git merge chart

四、经验总结

  1. 学习jieba基础,练习四种模式

    • 全模式
    • 精确模式
    • 新词识别
    • 搜索引擎模式
  2. index.html写了两种代码,第一次写的时候不会自定义图形,只能进行简单的图形转换
    百度了自定义图形的方法换了百度的写法,将两种方法结合了一下(ps:改太多次已经乱了章法)

添加image
将形状图转换为base64形式,添加到代码中

  1. 在编写html的时候评论词无法修改颜色
    修改相关代码即可
textStyle: {
                color: function() {
                  return 'rgb(' + [
                        Math.round(Math.random() * 160),
                        Math.round(Math.random() * 160),
                        Math.round(Math.random() * 160)
                    ].join(',') + ')';
              }
            }

4. 数据展示
最初是将数据直接复制到html编写中,所以百度了一下用jQuery+Ajax+js实现请求json格式数据并渲染到html页面
方法也参悟了,并进行了试验,但因为复制数据太辛苦不想改掉!所以没有对代码进行修改orz

五、参考文献

python爬虫学习笔记(一)—— 爬取腾讯视频影评
jieba“结巴”中文分词:做最好的 Python 中文分词组件
echarts实现词云自定义形状的示例代码
Commit message 和 Change log 编写指南

posted @ 2021-02-23 19:31  Auxim  阅读(158)  评论(0编辑  收藏