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

news2024/11/17 14:17:53

人生苦短,我用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、我很努力的想摆脱张志明,结果我发现,我变成另一个张志明。—《志明和春娇》

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/160373.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Springboot中,异步线程的执行顺序的控制

1、顺序的定义异步任务存在如下几种顺序&#xff1a;顺序的开启子任务&#xff08;运行顺序和结束顺序不确定&#xff09;。顺序的完成&#xff08;就是A先启动&#xff0c;先执行完&#xff0c;再执行B任务&#xff0c;往往A、B之间存在某种依赖关系&#xff09;。还有就是优先…

思科设备-配置静态路由

⬜⬜⬜ &#x1f430;&#x1f7e7;&#x1f7e8;&#x1f7e9;&#x1f7e6;&#x1f7ea; (*^▽^*)欢迎光临 &#x1f7e7;&#x1f7e8;&#x1f7e9;&#x1f7e6;&#x1f7ea;&#x1f430;⬜⬜⬜ ✏️write in front✏️ &#x1f4dd;个人主页&#xff1a;陈丹宇jmu &a…

【云原生进阶之容器】第四章Operator原理4.2节--CRD

1 CRD概述 1.1 CRD简介 CRD全称是CustomResourceDefinition,在Kubernetes 中一切都可视为资源,Kubernetes 1.7 之后增加了对 CRD 自定义资源二次开发能力来扩展 Kubernetes API,通过 CRD 我们可以向 Kubernetes API 中增加新资源类型,而不需要修改 Kubernetes 源码来创建自…

Django搭建个人博客Blog-Day03

对user模块进行开发设计数据表Django默认就提供了和用户相关的功能&#xff0c;但是这个Django默认提供的功能有个不好的点: 不太适合我们的项目&#xff0c;例如里面的字段不够等&#xff0c;所以我们要对它进行改造一下&#xff0c;方便项目开发。拓展用户模型进入虚拟环境安…

java1算法

排序–comparable接口 java提供了一个接口Comparable用来定义类的排序规则 eg: 1、定义一个学生类Student&#xff0c;具有年龄age和姓名username连个属性&#xff0c;并通过Comparable接口提供比较规则&#xff1b; 2、定义测试类Test,在测试类中定义测试方法Comparable getM…

还不会用YakitBp?来,我教你

前言 &#x1f340;作者简介&#xff1a;被吉师散养、喜欢前端、学过后端、练过CTF、玩过DOS、不喜欢java的不知名学生。 &#x1f341;个人主页&#xff1a;被吉师散养的职业混子 &#x1f342;相应专栏&#xff1a;CTF专栏 Yakit介绍 好兄弟&#xff0c;你听说过yakit吗&…

Redis五大基本数据类型

Redis五大基本数据类型 1.Redis通用命令 常用命令 #Redis的键key操作 keys * 表示查看当前库所有key 【注意是&#xff1a;可以使用通配符】 exists <key> 表示判断某个key是否存在&#xff0c;存在返回1&#xff0c;否则返回0 type <key> 表示判断key类型 del …

fiddler的下载和安装,及常用操作

目录 一、fiddler介绍 二、fiddler的下载和安装 三、fiddler的简单配置 四、fiddler的抓包 五、fiddler的自动响应器 六、fiddler的断点 七、fiddler的构造器 一、fiddler介绍 Fiddler是比较好用的Web代理调试工具之一&#xff0c;它能记录并检查所有客户端与服务端的HT…

【SpringCloud09】Ribbon负载均衡服务调用

1.概述 1.1是什么 Spring Cloud Ribbon是基于Netflix Ribbon实现的一套客户端负载均衡的工具。 简单的说&#xff0c;Ribbon是Netflix发布的开源项目&#xff0c;主要功能是提供客户端的软件负载均衡算法和服务调用。Ribbon客户端组件提供一系列完善的配置项如连接超时&…

Java 如何设计一款小游戏详细讲解(一)

目录 介绍 讲解 步骤一 步骤二 阶段(一)详细代码 介绍 注&#xff1a;这里是参考黑马程序员课程&#xff0c;其中图片也是直接拿的黑马程序员提供的图片 其中游戏的代码主要参考黑马程序员的课程&#xff0c;登录和注册主要由自己完成。 黑马素材放到这里自取 链接: https…

【Esp32】Spi接口驱动SX1268模块

【Esp32】Spi接口驱动SX1268模块1.硬件接线2. SX1268 模块的 SPI 时序分析3. 基于 ESP32 实现函数封装3.1 读寄存器3.2 写寄存器4. 实验结果日期&#xff1a; 2023-01-13 项目需要用乐鑫的 ESP32开发板驱动 Lora 模块&#xff0c;用的是 深圳SX1268ZTR4-GC的lora模块&#xff…

通行密钥,向无休止的修改密码说再见~

在上一期里《对称加密面临的那些挑战》中&#xff0c;我们提过密码&#xff0c;和多数人理解的不同&#xff0c;日常生活中用于保护账号安全的所谓“密码”&#xff0c;更贴切的称呼应该是“口令”密码。密码学中的密码&#xff0c;和我们日常生活中登录各类信息化系统所使用的…

Vue--》基于Vue的UI组件库,大家应该熟悉并会使用

目录 PC端UI组件库 Element UI IView UI 移动端UI组件库 Vant Cube UI Mint UI Nut UI UI组件库&#xff1a;它是设计系统的一部分&#xff0c;是在我们常规界面设计过程中可以直接用来制作交互图例和搭建页面的组件集合&#xff0c;它可以作为单个组件独立存在&#x…

Linux下的FrameBuffer驱动框架

一、RGB LCD经典显示器件介绍&#xff1a;1、LCD屏幕的重要属性参数&#xff1a;① 分辨率&#xff1a;也就是屏幕上的像素点的个数&#xff1b;② 像素格式&#xff1a;即单个像素点RGB三种颜色的表达方式&#xff0c;包括RGB888、ARGB8888和RGB565等。③ LCD屏幕硬件接口&…

全网最全的Linux中的内核级加强型火墙图文详解

目录 前言 一、Selinux的功能 二、Selinux的状态及管理 三、Selinux的安全上下文 四、SEBOOL 五、SEPORT 六、setrouble 前言 内核级加强型火墙主要是指系统中的selinux功能&#xff0c;该功能开启时&#xff0c;会对系统中的文件和程序产生影响&#xff0c;用户的…

SkyEye:针对飞行模拟器的仿真解决方案

01.飞行模拟器简介 飞行模拟器是一种由人工打造&#xff0c;能够尽可能真实地还原飞机飞行及空中环境的模拟系统&#xff0c;一般用于飞行员培训、飞机设计等工作。飞行模拟器能够模拟如何控制飞机飞行、模拟飞机应用系统的反应&#xff0c;还可模拟一些可能会对飞机系统造成影…

java图片压缩

1背景 查看各种文章&#xff0c;发现thumbnailator的压缩率和压缩效果都不错&#xff0c;thumbnailator又是使用java实现的&#xff0c;所以直接扒源码&#xff0c;找到了里面实现压缩的关键代码&#xff0c;封装成一个压缩工具类&#xff0c;有需要的同学可以参考。thumbnail…

Linux多线程Web服务器(C++实现)

本文实现的是基于Reactor模式epoll&#xff08;边缘触发&#xff09;非阻塞socket非阻塞IO线程池的Web服务器&#xff0c;可以处理GET、POST两种请求&#xff0c;完成展示主页、获取图片、获取视频、登录及注册共五种功能。原理图&#xff1a;上图为本文实现的服务器的原理图&a…

国产GPU芯片迎来突破,算力全球第一,中文编程也有好消息

苦&#xff0c;芯片久矣&#xff0c;终&#xff0c;迎来突破&#xff0c;实在振奋人心&#xff01;最近&#xff0c;国产GPU芯片传来了好消息&#xff0c;国产自研首款通用芯片&#xff0c;以每秒千万亿次的计算能力&#xff0c;创全球算力记录&#xff0c;芯片领域实现跨越式的…

包体积优化 · 实战论 · 怎么做包体优化? 做好能晋升吗? 能涨多少钱?

“ 【小木箱成长营】包体积优化系列文章&#xff1a; 包体积优化 方法论 揭开包体积优化神秘面纱 包体积优化 工具论 初识包体积优化 BaguTree 包体积优化录播视频课 ”一、引言 Hello&#xff0c;我是小木箱&#xff0c;欢迎来到小木箱成长营系列教程&#xff0c;今天将分…