用python 做一个词云图:复仇者联盟4:终局之战。短评分析

2023-10-28 08:21

本文主要是介绍用python 做一个词云图:复仇者联盟4:终局之战。短评分析,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

#短评网址
u1='https://movie.douban.com/subject/26100958/comments?start=40&limit=20&sort=new_score&status=P'
u1

输出结果为网址

#因为只有start的值不一样,所以我们可以采用格式化字符串%i来代替
u0='https://movie.douban.com/subject/26100958/comments?start=%i&limit=20&sort=new_score&status=P' %20
u0
#获取5个页面网址,并把它保存到一个列表中
url_lst=[]
for i in range(0,81,20):u0='https://movie.douban.com/subject/26100958/comments?start=%i&limit=20&sort=new_score&status=P' %iurl_lst.append(u0)
url_lst

输出结果为:为5个网址

#访问网页
import requests  #访问的工具包
import pandas as pd
from bs4 import BeautifulSoup #解析的工具包
u1=url_lst[0]#提取第一个网址
#返回response[200]代表向网页请求成功
r=requests.get(u1)
r

输出结果为:
<Response [200]>

#解析网页,会显示网页所有代码,我们就可以解析它的标签
soup=BeautifulSoup(r.text,'lxml')
#例如我要去找到复仇者联盟4:终极之战短评这几个字,是h1的标签
soup.h1

输出结果为:

复仇者联盟4:终局之战 短评

#看过(221799)
soup.find('li',class_='is-active')

输出结果为:

  • 看过(221812)
  • #所有的评论在这个大的div下面
    div=soup.find('div',id='comments')
    div
    
    #构建获取页面URL的函数
    def get_urls(n):urllst=[]for i in range(n):urllst.append('https://movie.douban.com/subject/26100958/comments?start=%i&limit=20&sort=new_score&status=P' %(i*20))return urllst
    urllsts=get_urls(50)
    urllsts[:2]
    

    输出结果为:前两个页面的网址

    # 构建网页信息获取函数def get_data(urli):try:ri = requests.get(url = u)ri.encoding = 'utf-8'# 访问网页soupi = BeautifulSoup(ri.text)# 解析网页infor_lst = soupi.find('div',id="comments").find_all('div',class_="comment-item")# 获取所有招聘标签divdatalsti = []for infor in infor_lst[:]:dic = {}dic['评论者'] = infor.find('span',class_="comment-info").find('a').textdic['评分'] = int(infor.find('span',class_="comment-info").find_all('span')[1]['class'][0][-2:])dic['评论时间'] = infor.find('span',class_="comment-time").text.replace(' ','').replace('\n','')dic['有用数量'] = int(infor.find('span',class_="votes").text)dic['评论内容'] = infor.find('p').text.replace('\n','')datalsti.append(dic)return datalstiexcept:return []u = 'https://movie.douban.com/subject/26100958/comments?start=0&limit=20&sort=new_score&status=P'
    get_data(u)[:2]
    

    输出结果为:
    在这里插入图片描述

    df=pd.DataFrame(datalst)
    df.head()
    

    在这里插入图片描述

    #数据分布分析
    #评论字数的分析
    df['评论字数']=df['评论内容'].str.len()
    df
    
    import matplotlib.pyplot as plt
    %matplotlib inline
    df['评论字数'] = df['评论内容'].str.len()
    plt.figure(figsize = (12,5))
    plt.title('评论字数数据分布')
    df['评论字数'].hist(bins = 20,edgecolor = 'white')
    plt.grid(linestyle='--')
    

    在这里插入图片描述

    #评论数量与有用数量的关系,用散点图来表示
    plt.figure(figsize = (12,5))
    plt.title('评论时间与有用数量关系')
    plt.scatter(df['评论时间'],df['有用数量'],alpha = 0.4)
    plt.xlabel('评论时间')
    plt.ylabel('有用数量')
    plt.grid(linestyle='--')
    

    在这里插入图片描述

    #关键人物的分析
    keyword='灭霸'
    n=0
    for i in df['评论内容']:if keyword in i:n=n+1
    print(n)
    
    #用DataFrame实现
    len(df[df['评论内容'].str.contains('灭霸')])
    
    #定义一个函数,去输出不同的人物在评论中出现的次数
    def name_count1(namei):return len((df[df['评论内容'].str.contains(namei)]))
    print('函数构建成功!')
    
    name_count1('美队')
    
    #词频的出现次数
    namelst=['美队','钢铁侠','灭霸','雷神','浩克','惊奇队长','奇异博士','死']
    for i in namelst:print(i,name_count1(i))
    

    输出结果为:
    美队 13
    钢铁侠 17
    灭霸 10
    雷神 13
    浩克 2
    惊奇队长 10
    奇异博士 3
    死 22
    最后做成词云图
    在这里插入图片描述

这篇关于用python 做一个词云图:复仇者联盟4:终局之战。短评分析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/291939

相关文章

浅析Python中的绝对导入与相对导入

《浅析Python中的绝对导入与相对导入》这篇文章主要为大家详细介绍了Python中的绝对导入与相对导入的相关知识,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1 Imports快速介绍2 import语句的语法2.1 基本使用2.2 导入声明的样式3 绝对import和相对i

Python中配置文件的全面解析与使用

《Python中配置文件的全面解析与使用》在Python开发中,配置文件扮演着举足轻重的角色,它们允许开发者在不修改代码的情况下调整应用程序的行为,下面我们就来看看常见Python配置文件格式的使用吧... 目录一、INI配置文件二、YAML配置文件三、jsON配置文件四、TOML配置文件五、XML配置文件

Go使用pprof进行CPU,内存和阻塞情况分析

《Go使用pprof进行CPU,内存和阻塞情况分析》Go语言提供了强大的pprof工具,用于分析CPU、内存、Goroutine阻塞等性能问题,帮助开发者优化程序,提高运行效率,下面我们就来深入了解下... 目录1. pprof 介绍2. 快速上手:启用 pprof3. CPU Profiling:分析 C

Python中conda虚拟环境创建及使用小结

《Python中conda虚拟环境创建及使用小结》本文主要介绍了Python中conda虚拟环境创建及使用小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们... 目录0.前言1.Miniconda安装2.conda本地基本操作3.创建conda虚拟环境4.激活c

MySQL表锁、页面锁和行锁的作用及其优缺点对比分析

《MySQL表锁、页面锁和行锁的作用及其优缺点对比分析》MySQL中的表锁、页面锁和行锁各有特点,适用于不同的场景,表锁锁定整个表,适用于批量操作和MyISAM存储引擎,页面锁锁定数据页,适用于旧版本... 目录1. 表锁(Table Lock)2. 页面锁(Page Lock)3. 行锁(Row Lock

使用Python创建一个能够筛选文件的PDF合并工具

《使用Python创建一个能够筛选文件的PDF合并工具》这篇文章主要为大家详细介绍了如何使用Python创建一个能够筛选文件的PDF合并工具,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下... 目录背景主要功能全部代码代码解析1. 初始化 wx.Frame 窗口2. 创建工具栏3. 创建布局和界面控件4

一文详解如何在Python中使用Requests库

《一文详解如何在Python中使用Requests库》:本文主要介绍如何在Python中使用Requests库的相关资料,Requests库是Python中常用的第三方库,用于简化HTTP请求的发... 目录前言1. 安装Requests库2. 发起GET请求3. 发送带有查询参数的GET请求4. 发起PO

Python与DeepSeek的深度融合实战

《Python与DeepSeek的深度融合实战》Python作为最受欢迎的编程语言之一,以其简洁易读的语法、丰富的库和广泛的应用场景,成为了无数开发者的首选,而DeepSeek,作为人工智能领域的新星... 目录一、python与DeepSeek的结合优势二、模型训练1. 数据准备2. 模型架构与参数设置3

Python进行PDF文件拆分的示例详解

《Python进行PDF文件拆分的示例详解》在日常生活中,我们常常会遇到大型的PDF文件,难以发送,将PDF拆分成多个小文件是一个实用的解决方案,下面我们就来看看如何使用Python实现PDF文件拆分... 目录使用工具将PDF按页数拆分将PDF的每一页拆分为单独的文件将PDF按指定页数拆分根据页码范围拆分

Python中常用的四种取整方式分享

《Python中常用的四种取整方式分享》在数据处理和数值计算中,取整操作是非常常见的需求,Python提供了多种取整方式,本文为大家整理了四种常用的方法,希望对大家有所帮助... 目录引言向零取整(Truncate)向下取整(Floor)向上取整(Ceil)四舍五入(Round)四种取整方式的对比综合示例应