本文主要讲述采集猫眼电影用户评论进行分析,相关爬虫采集程序可以爬取多个电影评论。
运行环境: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,开始时间=
接口返回的数据如下,主要采集(昵称,城市,评论,评分和时间),用户评论在json (cmt的)中:
<强> 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条数据,每条记录的每个数据使用# # #进行分割: