Python采集最热影评 + 制作词云图

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

人生苦短我用Python

电影评论简称影评

是对一部电影的导演、演员、镜头、摄影、剧情、线索、环境、色彩、光线、视听语言、道具作用、转场、剪辑等进行分析和评论。
电影评论的目的在于分析、鉴定和评价蕴含在银幕中的审美价值、认识价值、社会意义、镜头语言等方面
达到拍摄影片的目的解释影片中所表达的主题
既能通过分析影片的成败得失帮助导演开阔视野
提高创作水平以促进电影艺术的繁荣和发展;
同时能通过分析和评价影响观众对影片的理解和鉴赏
提高观众的欣赏水平从而间接促进电影艺术的发展。

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

点击文末名片获取源码


在这里插入图片描述

所需模块

import jieba
import pandas as pd
import wordcloud

读取csv表格里面数据内容

df = pd.read_csv('影评.csv')

获取评论内容

content_list = df['评论'].to_list()

把列表转成字符串

content = ''.join(content_list)

进行分词处理

string = ' '.join(jieba.lcut(content))

词云图配置

wc = wordcloud.WordCloud(
    width=1000,  
    height=700, 
    background_color='white', 
    font_path='msyh.ttc',
    stopwords={'词'},
    scale=15
)

传入文字内容

wc.generate(string)

输出词云图

wc.to_file('词云图.png')
print(string)

在这里插入图片描述

导入模块 --> 第三方模块, 需要安装 pip install requests

import requests
import parsel
import csv

创建文件对象

f = open('影评.csv', mode='a', encoding='utf-8-sig', newline='')
'昵称',
 '评分',
 '日期',
'归属地',
 '评论',
'有用',
])

写入表头

csv_writer.writeheader()

发送请求, 模拟浏览器对于url地址发送请求

  • 安装模块:

  • 模拟浏览器: --> headers 请求头 <开发者工具进行复制>
    把python代码伪装成浏览器去发送请求
    目的: 为了防止被反爬
    反爬: 你得不到数据, 或者返回的数据不是你想要的

采集的速度过快/频繁, 可能会IP异常 解决方法:

  1. 登陆账号加上cookie
  2. 用IP代理, 切换IP

多页的数据采集

分析请求链接的变化规律

#python学习交流裙903971231#
for page in range(0, 201, 20):
请求链接 字符串格式化方法 -->
url = ''
伪装模拟
headers = {
User-Agent 用户代理, 表示浏览器基本身份信息
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.0.0 Safari/537.36'
}

发送请求

response = requests.get(url=url, headers=headers)

获取数据, 获取服务器返回响应数据

开发者工具: response
response.text --> 获取响应文本数据
response --> 响应对象
text --> 文本

解析数据, 提取我们想要的数据内容

selector = parsel.Selector(response.text)
divs = selector.css('div.comment-item')
for div in divs:
 .comment-info a::text --> 
get() --> 
attr() --> 
name = div.css('.comment-info a::text').get()  # 昵称
rating = div.css('.rating::attr(title)').get()  # 评分
date = div.css('.comment-time ::attr(title)').get()  # 日期
area = div.css('.comment-location::text').get()  # 归属地
short = div.css('.short::text').get().replace('\n', '')  # 评论
count = div.css('.vote-count::text').get()  # 有用
把数据放到字典里面
dit = {
'昵称': name,
'评分': rating,
'日期': date,
'归属地': area,
'评论': short,
 '有用': count,
 }

写入数据

csv_writer.writerow(dit)
print(name, rating, date, area, short, count)

在这里插入图片描述

最后为大家献上一些电影台词金句💥

1、“希望是美好的也许是人间至善而美好的事物永不消逝。”——《肖申克的救赎》

2、“人生和电影不一样人生辛苦多了。”——《天堂电影院》

3、“生而为人对不起。”——《被嫌弃的松子的一生》

4、“不知道从什么时候开始在每一个东西上面都有个日子秋刀鱼会过期肉酱也会过期连保鲜纸都会过期。我开始怀疑在这个世界上还有什么东西是不会过期的?”——《重庆森林》

5、“以前我认为那句话很重要因为我觉得有些话说出来就是一生一世现在想一想说不说也没有什么分别有些事会变的。 我一直以为是我自己赢了直到有一天看着镜子才知道自己输了在我最好的时候我最喜欢的人都不在我身边。如果能重新开始那该多好。”——《东邪西毒》

6、“凡事都有可能永远别说永远。”《放牛班的春天》

7、如果做人没有梦想那跟咸鱼有什么分别啊?—《少林足球》

8、死亡不是生命的终点遗忘才是。—《寻梦环游记》

9、Im Dawson, Rose Dawson.(以你之姓,冠我之名)—《泰坦尼克号》

10、我很努力的想摆脱张志明结果我发现我变成另一个张志明。—《志明和春娇》

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: python