Python采集猫眼两万条数据对《无名之辈》影评进行分析

  

  

本文主要讲述采集猫眼电影用户评论进行分析,相关爬虫采集程序可以爬取多个电影评论。

  

运行环境:Win10/Python3.5。

  

分析工具:jieba wordcloud, pyecharts matplotlib。

  

基本流程:下载内容——→分析获取关键数据——→保存本地文件——→分析本地文件制作图表

  

本文所有图文和源码仅供学习,请勿他用,转发请注明出处!

  

本文主要参考:https://mp.weixin.qq.com/s/mTxxkwRZPgBiKC3Sv-jo3g

  

  

<强> 2.1,分析数据接口:
  

  

为了健全数据样本,数据直接从移动端接口进行采集,连接如下,其中橙色部分为猫眼电影ID、修改即可爬取其他电影。

  

链接地址:http://m.maoyan.com/mmdb/comments/movie/1208282.json& # 63; v=yes&抵消=15,开始时间=

  

 Python采集猫眼两万条数据对《无名之辈》影评进行分析

  

接口返回的数据如下,主要采集(昵称,城市,评论,评分和时间),用户评论在json (cmt的)中:

  

 Python采集猫眼两万条数据对《无名之辈》影评进行分析

  

<强> 2.2,爬虫程序核心内容(详细可以看后面源代码):

  

祝辞启动脚本需要的参数如下(脚本名+猫眼电影ID +上映日期+数据保存的文件名):\ myMovieComment。py 1208282 2016-11-16 myCmts2.txt

  

祝辞下载html内容:下载(自我,url),通过python的请求模块进行下载,将下载的数据转成json格式

        def下载(自我,url):   ”“下载html内容”“”      打印(“正在下载URL:“+ URL)   #下载html内容=响应请求。get (url,标题=self.headers)      #转成json格式数据   如果响应。status_code==200:   返回response.json ()   其他:   #打印(html.status_code)   打印(“下载数据为空!”)   返回"      

祝辞然后就是对已下载的内容进行分析,就是取出我们需要的数据:

        def解析(自我、内容):   ”““分析数据”“”      评论=[]   试一试:   项目的内容(cmt的):   评论={   “昵称”:项目(“昵称”),#昵称   “某个”:项目(“某个”),#城市   “内容”:项目(“内容”),#评论内容   “分数”:项目(“分数”),#评分   “开始时间”:项目(“开始时间”),#时间   }   comments.append(评论)      除了例外e:   打印(e)      最后:   返回评论      

祝辞将分析出来的数据,进行本地保存,方便后续的分析工作:

        def保存(自我、数据):   ””“写入文件”“”      打印(“保存数据,写入文件中……”)   self.save_file.write(数据)      

比;爬虫的核心控制也即爬虫的程序启动入口、管理上面几个方法的有序执行:

        def开始(自我):   ”““启动控制方法”“      打印(“爬虫开始…\ r \ n”)      start_time=self.start_time   end_time=self.end_time      num=1   start_time比;end_time:   打印(“执行次数:“,num)   # 1,下载html   内容=self.download(自我。target_url + str (start_time))      # 2,分析获取关键数据   评论="   如果内容!=" ":   评论=self.parse(内容)      如果len(评论)& lt;=0:   打印(“本次数据量为:0,退出爬取。\ r \ n”)   打破      # 3,写入文件   res="   cmt的评论:   res +=" % s # # # % # # # %年代# # # % # # # %年代\ n”% (cmt(“昵称”),cmt(“某个”),cmt(“内容”),cmt(“分数”),cmt(“开始时间”))   self.save (res)      打印(“本次数据量:% s \ r \ n”% len(评论)      #获取最后一条数据的时间,然后减去一秒   start_time=datetime.strptime(评论(len(注释)- 1)(“开始时间”),“Y % - % - % d % H: % m: % S”) + timedelta(秒=1)   # start_time=datetime。strptime (start_time“Y % - % - % d % H: % m: % S”)      #休眠3 s   num +=1   time . sleep (3)      self.save_file.close ()   打印(“爬虫结束…”)      

2.3数据样本,最终爬取将近万2条数据,每条记录的每个数据使用# # #进行分割:

  

 Python采集猫眼两万条数据对《无名之辈》影评进行分析

Python采集猫眼两万条数据对《无名之辈》影评进行分析