第一次个人编程作业

博客班级 2018级计算机和综合实验班
作业要求 第一次个人编程作业
作业目标 数据采集和处理,数据展示,axios,echarts
作业源代码 first-personal-work
学号 211808109
 

写在前面

  简单看了下作业内容,一个是要爬取,一个看上去是下下来就okk,思考了一下选择了作业一,至少第一步是熟悉的爬虫,网上也有写的差不多的代码可以看看(到后面发现它不太正常ಥ_ಥ然后要用分词器处理,看了下三个分词器,感觉都差不多(看不太懂)就选了第一个用,接下来是用echarts生成词云图,官网上面有两个示例看上去可以抄来用的样子/最后是github,跟上一次的作业差不多,多了个分支的合并。
 

时间安排

步骤 预计耗时 实际耗时 代码行数
分析作业要求 1h 1h
数据采集 1h 2h 58行
数据处理 2h 2h 31行
数据分析展示 3h 4h 100行
代码推送 30min 30min
 

作业步骤

  • Step1 进行数据采集
    • 先分析网址,打开网址:腾讯视频《在一起》,观察网页发现是用了Ajax异步刷新技术。
    • 按F12,刷新网页,点击查看更多评论可以发现每页url里面的cursor和最后一串数字page不一样
    • 其中cursor=?的值存在上面一个JS中,就是上一页的最后一个用户的ID,_=?是每点击查看更多评论后加1
    • 点开其中一个网址可以看到页面里面的评论都在"content":"xxxxxxxx"里,然后就可以编写代码辽   

       

       
  • Step2 进行数据处理
    • 数据爬取完后就要对数据进行处理,处理完成的数据格式应该是{"name":"xxx","value":xxx},前面是从所有评论分出来的词,后面是这个词出现的次数。
    • 选择使用jieba库进行数据处理。
    • 安装jieba库pip install jieba
    • 导入import jieba
       
    • 这里在各种网站上学习大佬们jieba库的使用,学习过程中看到有个去停用词的jieba分词的用法,停用词表在github上也找得到,就是把一些没有什么用或者没有意义的语气词、连词之类的去掉
    • 然后重要的一点还是JSON的格式,应该要用双引号而不是单引号
# 创建停用词列表
stopwords = [line.strip() for line in open('stop_words.txt', encoding='UTF-8').readlines()]

outlist = []
for word in words:
    if word in stopwords:
        continue
    else:
        outlist.append(word)

 

  • Step3 数据分析展示
    • 先是从官网上大概看了下Echarts,然后发现上面的有个字符云的示例好像可以直接用的样子,但是里面的数据是直接放在HTML里面的,如果数据少的话直接贴上去更方便,但是腾讯视频上《在一起》的评论太多,通过请求来获取JSON数据应该更好些
    • 最开始是下了个wamp想着用localhost看看从网上的下载下来例子,但是一直用不会Σ(´□`;)
    • 接着决定开始学习用axios执行Ajax请求来获取JSON数据,官网上的代码教程什么的看不太明白于是去了b站看完了还是不太懂的感觉就照着抄了个get/
    • 最后下了WS,又百度了下,然后拼拼凑凑了下,最后最后可算是做好了
    • 还有还有就是生成形状的那个图片可以从iconfont-阿里巴巴矢量图标库里面找,注册一下就可以下载啦   
axios.get('../code/comments.json')
  .then(res => (
    myChart.setOption({ 
      series: [{
        data: res.data.data  //用option.json中的数据给data赋值
      }]
    })
  ))
  .catch(err => {
    console.log('错误' + err);
  });


 

  • Step4 代码推送
    • 主要的代码大概有这么几个,结合图片大概可以看明白
git init  // 初始化git仓库
git status  // 查看文件状态
git add 文件列表  // 追踪文件
git commit -m 提交信息  // 向仓库中提交代码
git branch  // 查看分支
git branch 分支名称  // 创建分支
git checkout 分支名称  // 切换分支
git merge 来源分支 // 合并分支

遇到的问题

  • 评论太多

因为评论太多,然后试着爬了好几次,等了半天最后还是报错了...都没有爬完整的样子,然后用了爬到的评论最多的做后面的几步(就当网不好吧)
 

 

  • 生成的词云图不是随机颜色

最开始生成的词云图是做个样子的(感觉还挺好看;)
 

 
把随机颜色那部分的代码改了改就o了

textStyle : {
                normal : {
                    fontFamily:'sans-serif',
                    color : function() {
                        return 'rgb('
                            + [ Math.round(Math.random() * 160),
                                Math.round(Math.random() * 160),
                                Math.round(Math.random() * 160) ]
                                .join(',') + ')';
                    }
                },
                emphasis : {
                    shadowBlur : 5,  //阴影距离
                    shadowColor : '#333'  //阴影颜色
                }
            },

 

  • git上传会出现LF will be replaced by CRLF提示

    • 看了廖雪峰的git教程,解决办法:

设置core.autocrlf=false,windows也用LF换行。
git config --global core.autocrlf false
设置一个.editorconfig 来保证文件都是 LF 结尾。
除了记事本,其他编辑器都可以正常编辑
 

 

一点点总结

  首先发现一个问题就是脑子不太好使,可能因为在假期的时候就想好好玩吧,毕竟开学了就要忙了;还有就是稍微有点强迫症什么的,碰到代码有问题就一直想一直想都不怎么停下来休息特别像这次的作业基本上都是没有学过的东西,就一直在那死磕现在磕完了眼睛不太舒服(∩_・。∩)不过这次的作业也让我学会了点东西///总结就是以后要多熟悉git用法不然容易手贱把好不容易做完的仓库删掉,写代码的时候可以顺便把注释加上不然后面针对看不懂‘
 

参考网址

posted @ 2021-02-25 23:55  cyx299-111  阅读(82)  评论(1编辑  收藏  举报