Python数据获取及分析 获取豆瓣电影 评论 星级 时间

Python数据获取及分析 获取电影评论星级时间

豆瓣

本任务使用 Python 来获取豆瓣网中某电影下所有的评论,进行分析,从观

众的角度来了解这部电视剧。

数据获取

使用如下脚本获取时间,星级,评论
正则表达式可在此处测试正则表达式可视化工具正则表达式调试工具

import requests
import re
from openpyxl import Workbook

def getdata():
    header = {
    # F12查看
        "User-Agent": "",
        "cookie": ""
        }
    original_url = 'https://movie.douban.com/subject/30228394/comments?start='
    original_url2 = '&limit=20&status=P&sort=new_score'
    for page in range(24):

        url = original_url + str(page * 20) + original_url2
        print("正在进行第{}页评论获取网址{}".format(page,url))

        r = requests.get(url, headers=header)
        data = r.text
        # 评论
        comments = re.findall("<span class=\"short\">([\w\W]*?)</span>", data)

        # 时间
        times = re.findall("<span class=\"comment-time \" title=\".*?\">([\w\W]*?)</span>", data)

        # 星级
        stars = re.findall("<span class=\"allstar[\d]* rating\" title=\"(.*?)\"></span>", data)

        for i in range(19):

            comment = comments[i].replace("\n", "")
            time = times[i].replace("\n", "")
            time = time.replace(" ", "")
            star = stars[i]
            # 生成第i行数据
            ws.append([time, star, comment])
            commentst = ""
            commentst += comment


if __name__ == '__main__':
    # 实例化
    wb = Workbook()
    # 激活 worksheet
    ws = wb.active
    # 设置表头
    ws.append(['时间','星级','评论'])
    col = ws.column_dimensions['A']  # 将时间列拓宽
    col.width = 20
    col = ws.column_dimensions['C']  # 将评论列拓宽
    col.width = 140
    getdata()

    wb.save('用户评价信息.csv')

获取的时间,星级,评论数据

pandas分家,划分为时间表和星级表

import pandas as pd  #引入pandas函数并as为pd以便后续调用

df = pd.read_csv('用户评价信息.csv',encoding='utf-8')  #读取数据,将数据储存进data中

df.columns = ['时间','星级','评论']

res = df.groupby('时间').count()
res.to_csv('时间表.csv')
print(res)

res = df.groupby('星级').count()
res.to_csv('星级表.csv')
print(res)

乱码问题是由于Excel打开格式问题,在程序中由UTF-8一统江山,不存在乱码问题


时间表

星级表
如下为UTF-8编码下内容
星级,时间,评论
力荐,319,319
很差,30,30
推荐,40,40
较差,30,30
还行,37,37

可视化分析

要求将爬取的数据存放在文件中,且实现对数据的可视化分析,包括:

1、 评论日期

按照日期统计评论次数;

源代码:

import numpy as np  # 引入numpy函数并as为np以便后续调用
import pandas as pd  # 引入pandas函数并as为pd以便后续调用
import matplotlib.pyplot as plt  # 引入matplotlib.pyplot函数并as为plt以便后续调用

plt.rcParams['font.sans-serif'] = ['KaiTi']  # 指定默认字体
df = pd.read_csv('时间表.csv', encoding='utf-8')  # 读取数据,将数据储存进data中

df.columns = ['时间', '星级', '评论'<
  • 10
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SK Primin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值