2021春节档电影数据分析

该博客分析了2021春节档7部电影的票房影响因素,通过爬虫抓取并分析豆瓣电影的影评,利用Python和XPath获取影评内容。对评论进行处理后制作词云图,进一步爬取猫眼实时票房数据,使用Tableau、PowerBI或Excel进行数据可视化,旨在揭示票房与影评的关系并为电影制作提供参考。
摘要由CSDN通过智能技术生成

在这里插入图片描述

分析需求:针对大年初一(2021年2月12日)同一天上映的7部电影进行分析,分析影响电影票房高低的原因,分析电影票房的相关性因素,并分析总票房前三电影的影评内容。最终得出报告结论并对电影的拍摄提供参考建议。

分析流程图:
分析流程图
爬取豆瓣网你好李焕英的影评

通过对豆瓣网址的结构分析可知,链接到不同电影影评网址的区别是电影代码不同,并且第一页和下一页的区别就是 start=20&limit=20 ,当我们知道了这个结构之后就可以爬取相对应的影评内容了。如图(以你好,李焕英和唐探3为例):
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
以爬取豆瓣网你好李焕英的影评内容为例:

#需求-----爬取豆瓣网你好李焕英的影评
# MovieName = '你好,李焕英'
import requests
from lxml import etree
import time


base_url = 'https://movie.douban.com/subject/34841067/comments?start={}&limit=20&status=P&sort=new_score'

#构造请求头,防止反爬
headers = {
   'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36'}

#爬取影评内容
def Spider_Comment():
    my_comment_list = []
    
    for i in range(0,10):
        url_all = base_url.format(i*20)
        response = requests.get(url=url_all,headers=headers)
        #设置时间间隔,网址IP被ban
        time.sleep(10)
        #获取爬取结果
        result_str = response.content.decode('utf-8')
        result_str = str(result_str)
        #将结果转换成xpath可以解析的类型
        html = etree.HTML(result_str)
        #用xpath进行解析
        review_contents = html.xpath('//span[@class="short"]/text()')
        my_comment_list.append(review_contents)
    return my_comment_list

result_comment = Spider_Comment()
result_comment
result_comment = str(result_comment)
# 保存文件
with open(r'D:\Data_analysis\program_movie\review_li3.text','w',encoding='utf-8') as f:
    f.write(result_comment)
f.close()

在这里插入图片描述

若想爬取观众影评的时间,只需找到对应的标签层级,用xpath相对路径的方式就可以取到。

#爬取影评时间
def Spider_Comment_time():
    comment_time_list = []
    for i in range(0,10):
        url_all = base_url.format(i*20)
        response = requests.get(url=url_all,headers=headers)
        time.sleep(10)
        result_str = response.content.decode('utf-8')
        result_str = str(result_str)
        html = etree.HTML(result_str)
        for j in range(1,20):
            #找到影评时间的xpath相对路径,并用xpath解析
            review_time = html.xpath('//*[@id="comments"]/div[{}]/div[2]/h3/span[2]/span[3]/@title'.format(j))

            comment_time_list.append(review_time)
   
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值