当前位置:   article > 正文

基于Python的中国影业数据分析_《基于pvthon 的中国影业数据分析》

《基于pvthon 的中国影业数据分析》

目 录
摘 要 I
Abstract II
第1章 绪论 1
1.1 选题背景及意义 1
1.2 研究现状 2
1.3 研究主要内容 2
第2章 相关理论及技术 4
2.1 robot协议对本设计的影响 4
2.2 爬虫 4
2.2.1 工作原理 4
2.2.2 工作流程 5
2.2.3 抓取策略 5
2.3 Python及Pycharm简介 6
2.4运行环境和系统结构 6
第3章 系统设计 7
3.1环境搭建 7
3.2设计思路 7
3.3 第三方类库的简介和安装 8
3.3.1 Scarpy简介及安装 8
3.3.2 Numpy简介及安装 9
3.3.3 Pandas简介及安装 10
3.3.4 JieBa简介及安装 10
3.3.5 WordCloud简介及安装 10
3.3.6 Matplotlib简介及安装 10
3.3.7 Pygal简介及安装 10
3.3.8 re简介 11
3.3.9 json简介 11
3.3.10 os简介 11
3.3.11 shutil简介 11
3.3.12 pathlib简介 11
3.3.13 random简介 12
3.3.14 math简介 12
3.3.15 PIL简介 12
3.4 Scrapy详解 12
3.4.1 架构介绍 12
3.4.2 数据流 13
第4章 影视基本数据爬取 15
4.1 影视基本数据爬取 15
4.1.1 新建Python项目 15
4.1.2 项目里安装Scrapy 15
4.1.3 中国影业top250网站分析 15
4.1.4 创建一个Scrapy项目 17
4.1.5 创建一个Spider 17
4.1.6 定义Rule 18
4.1.7 解析中国影业top250页面 20
4.1.8 保存文件 22
4.1.9 settings配置 23
4.1.10 运行蜘蛛 26
4.2 影评数据爬取 27
4.2.1 影评网站分析 27
4.2.2 创建一个Spider 30
4.2.3 重写start_requests方法 30
4.2.4 解析影评页面 31
4.2.5 保存文件 32
4.2.6 运行蜘蛛 32
4.3 数据可视化及分析 33
4.3.1 影评数据词云可视化 33
4.3.2 近年来排行榜电影各类图 36
4.3.3 电影种类数量饼图 36
4.3.4 各国电影柱形图 37
4.3.5 作品数量前十导演 38
4.3.6 人气前二十的电影对比图 39
4.3.7 绘图代码 40
4.4 小结 44
总 结 45
致 谢 46
参考文献 47
1.3 研究主要内容
1.数据爬取模块:主要是用来爬取数据,爬取中国影业上的电影名字、电影封面、电影评分、电影排名等,接下来对排行榜上每部电影的数据进行爬取。
2.数据分析模块:主要是对爬取下来的数据进行分析处理,例如对爬取下来的电影评论进行筛选,去除重复臃肿的评论,留下‘神评论’,或是按类型、评分、时间选出最佳影片。该模块会运用到以下库:
① Pandas是Python强大、灵活的数据分析和探索工具,包含Series、DataFrame等高级数据结构和工具,可使Python中处理数据非常快速和简单。
② Numpy用于数值分析的标准python库。
3.数据可视化模块:对处理好的数据进行可视化处理,例如对影评进行结巴中文分词,然后用词云展示库,用电影封面为背景展示词云,或对爬取的数据进行各种绘图。该模块会运用以下库:
① Matplotlib是Python的一个可视化模块,他能方便的只做线条图、饼图、柱状图以及其他专业图形。
② wordcloud库,可以说是python非常优秀的词云展示第三方库。词云以词语为基本单位更加直观和艺术的展示文本。
第3章 系统设计
3.1环境搭建
(1)从官网下载python3安装包,官网:
https://www.python.org/。
(2)安装python,并配置环境变量:(安装时勾选加入Path,即可自动配置好环境变量。)此电脑-属性–高级系统设置–环境变量–系统变量–path–新建–(找到自己的python位置,一般是在C盘,复制路径,粘贴进入新建,分隔号是“;”,然后一直点确认就行了。)上面是win10的操作流程,如果是win7的话,本文转载自http://www.biyezuopin.vip/onews.asp?id=13976直接在点击path,下面一条上加一个;后面加c:\python3就可以了,
(3)从官网下载pycharm安装包,官网:
http://www.jetbrains.com/,安装pycharm。
(4)pycharm关联python,并配置国内镜像源:File–setting–选择Project:xxx–下拉选择Project Interpreter–然后在Proect Interpreter:栏里选择(如果没有选择的话,点show all然后添加自己python安装路径下的python.exe),接着点击右侧加号点击Manage Repositories,最后删除原有路径,添加清华镜像源(改成国内镜像源可以在安装库时避免一些错误):
https://pypi.tuna.tsinghua.edu.cn/simple。
3.2设计思路
用Python的Scrapy框架编写爬虫程序抓取了猫眼《我和我的家乡》的影片榜单信息,爬取电影的短评、评分、评价数量等数据,并结合Python的多个库(Pandas、Numpy、Matplotlib),使用Numpy系统存储和处理大型数据,中文Jieba分词工具进行爬取数据的分词文本处理,wordcloud库处理数据关键词,最终通过词云图、网页动态图展示观众情感倾向和影片评分统计等信息。

from pathlib import *
import jieba
import pandas as pd
import numpy
import re
from PIL import Image
from wordcloud import WordCloud,ImageColorGenerator
class Run():
    move_path=Path('DouBanTop250/Result')
    for a,b in zip(move_path.glob('**/*影评.txt'),move_path.glob('**/*.jpg')):
        name=str(a).strip('影评.txt').split('\\')[-1]
        with open(str(a),'r',encoding='utf-8') as f:
            pattern = re.compile('[\w]+')
            filterdata = re.findall(pattern, f.read())
            cleaned_comments = ''.join(filterdata)
            # 使用结巴分词进行中文分词
            segment = jieba.lcut(cleaned_comments)
            words_df = pd.DataFrame({'segment': segment})
            # 去掉停用词
            stopwords = pd.read_csv("chineseStopWords.txt", index_col=False, quoting=3, sep="\t", names=['stopword'],
                                    encoding='gbk')
            words_df = words_df[~words_df.segment.isin(stopwords.stopword)]
            # 统计词频
            words_stat = words_df.groupby(by=['segment'])['segment'].agg(numpy.size)
            words_stat=words_stat.to_frame()
            words_stat.columns=['计数']
            words_stat=words_stat.reset_index().sort_values(by=["计数"], ascending=False)
            bg_pic = numpy.array(Image.open(str(b)))
            # 用词云进行显示
            wordcloud = WordCloud(
                    font_path="simhei.ttf",
                    background_color=None,
                    max_font_size=80,
                    mask=bg_pic,
                    mode="RGBA"#透明背景
            )
            word_frequence = {x[0]: x[1] for x in words_stat.head(5000).values}
            wordcloud = wordcloud.fit_words(word_frequence)
            image_colors = ImageColorGenerator(bg_pic)  # 根据图片生成词云颜色
            wordcloud_path=str(b).replace('.jpg','.png')
            wordcloud.to_file(wordcloud_path)  # 把词云保存下来
if __name__ == '__main__':
    Run()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/441758
推荐阅读
相关标签
  

闽ICP备14008679号