数据可视化第十天(爬虫爬取某瓣星际穿越电影评论,并且用词云图找出关键词)

开头提醒

本次爬取的是用户评论,只供学习使用,不会进行数据的传播。希望大家合法利用爬虫。

获得数据

#总程序
import requests
from fake_useragent import UserAgent
import time

fu=UserAgent()

headers={
    'User-Agent':fu.random
}

page_list=range(0,10)
#爬取10页的数据;需要的时间会很久
for page in page_list:
	#这些参数最后是拼接到?后面构成URL的参数
    params={
    'start':20*page,
    'sort':'time'
    }
    url="https://movie.douban.com/subject/1889243/reviews"
    req=requests.get(url,params=params,headers=headers)
    time.sleep(3)
    html=etree.HTML(req.text)#将获得的数据变成HTML格式
    id_list=html.xpath('//div[@class="main review-item"]/@id')#xpath比较容易提取需要的数据,学习也简单
    comment_results=[]
    #评论是折叠的,通过点击超链接,我们会在一个新的连接
    #发现这个评论,读取这个里面的全部评论
    #观察一下url我们就知道如何去读取这个数据了
    for id in id_list:
        url='https://movie.douban.com/review/'+id+'/'
        id_req=requests.get(url,headers=headers)
        id_html=etree.HTML(id_req.text)
        id_comment_list=id_html.xpath('//div[@class="review-content clearfix"]/p/text()')
        comment_results.append(id_comment_list)
        time.sleep(3)
        
    for comment in comment_results:
        with open('/Users/oommnn/Desktop/学习笔记/爬虫项目/星际穿越电影评论.txt','a+',encoding='utf-8') as f:
            #print(str(comment))
            #获得的是list;转为str类型
            #但是有的评论有多个p,不能单纯的只取第一项
                for com in comment:
                    f.write(com)
            
    if req.status_code == 200:
        print(f"爬取第{page}页成功")

            
print("爬取结束")

可视化处理

注:一般形容词可以让我们了解人们对这部电影的评价

#可视化处理
import jieba.analyse
import wordcloud

with open('你的文件地址','r',encoding='utf-8') as f:
    data=f.read()
    
#a代表形容词
key_list=jieba.analyse.extract_tags(data,topK=100,allowPOS='a')
keys=' '.join(key_list)#合并到适合wordcloud处理的字符串
#collocations:是否找一些常见的词汇组合;这里不需要组合
#比如:我 草 这是一种常见的组合,但是这里不需要
wc=wordcloud.WordCloud(font_path='/System/Library/Fonts/Hiragino Sans GB.ttc',
                      width=800,height=600,collocations=False,max_words=50,background_color='black').generate(keys)
image=wc.to_image()
image.show()

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

《QT实用小工具·六十五》基于QPropertyAnimation实现的移动动画和控件覆盖

1、概述 源码放在文章末尾 该项目基于QPropertyAnimation实现了控件平移动画和控件之间的相互覆盖效果,项目demo演示如下所示: 项目解析: new QPropertyAnimation(ui.SingleOcclusion, “pos”); //创建动画对象,第一个参数传…

二.常见算法--贪心算法

&#xff08;1&#xff09;单源点最短路径问题 问题描述&#xff1a; 给定一个图&#xff0c;任取其中一个节点为固定的起点&#xff0c;求从起点到任意节点的最短路径距离。 例如&#xff1a; 思路与关键点&#xff1a; 以下代码中涉及到宏INT_MAX,存在于<limits.h>中…

Vue从入门到实战 Day08~Day10

智慧商城项目 1. 项目演示 目标&#xff1a;查看项目效果&#xff0c;明确功能模块 -> 完整的电商购物流程 2. 项目收获 目标&#xff1a;明确做完本项目&#xff0c;能够收获哪些内容 3. 创建项目 目标&#xff1a;基于VueCli自定义创建项目架子 4. 调整初始化目录 目…

基于springboot实现的校园博客系统

开发语言&#xff1a;Java 框架&#xff1a;springboot JDK版本&#xff1a;JDK1.8 服务器&#xff1a;tomcat7 数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09; 数据库工具&#xff1a;Navicat11 开发软件&#xff1a;eclipse/myeclipse/idea Maven…

工地升降机AI人数识别系统

工地升降机人数识别系统采用了AI神经网络和深度学习算法&#xff0c;工地升降机AI人数识别系统通过升降机内置的摄像头实时监测轿厢内的人员数量。通过图像处理和人脸识别算法&#xff0c;系统能够精确地识别升降机内的人数。一旦系统识别到人数达到或者超过设定的阈值&#xf…

QT--TCP网络通讯工具编写记录

QT–TCP网络通讯工具编写记录 文章目录 QT--TCP网络通讯工具编写记录前言演示如下&#xff1a;一、服务端项目文件&#xff1a;【1.1】server_tcp.h 服务端声明文件【1.2】thread_1.h 线程处理声明文件【1.3】main.cpp 执行源文件【1.4】server_tcp.cpp 服务端逻辑实现源文件【…

【MySQL进阶之路 | 基础篇】MySQL新特性 : 窗口函数

1. 前言 (1). MySQL8开始支持窗口函数. 其作用类似于在查询中对数据进行分组(GROUP BY)&#xff0c;不同的是&#xff0c;分组操作会把分组的结果聚合成一条记录. 而窗口函数是将结果置于每一条数据记录中. (2). 窗口函数还可以分为静态窗口函数和动态窗口函数. 静态窗口函数…

秋招突击——算法——模板题——区间DP(1)——加分二叉树

文章目录 题目描述思路分析实现代码分析总结 题目描述 思路分析 实现代码 不过我的代码写的真的不够简洁&#xff0c;逻辑不够清晰&#xff0c;后续多练练吧。 // 组合数问题 #include <iostream> #include <algorithm>using namespace std;const int N 35; int…

聚星宇学电商:现在开一家抖音网店真的好做吗

在数字经济的浪潮中&#xff0c;抖音以其强大的流量优势成为众多创业者眼中的“香饽饽”。然而&#xff0c;开一家抖音网店是否真的好做?这个问题值得我们深入探讨。 不可否认的是&#xff0c;抖音平台汇聚了海量的用户基础和丰富的社交属性&#xff0c;为商家提供了一个广阔的…

【Linux】Centos7安装RabbitMQ

【Linux】Centos7安装RabbitMQ 下载 从 rabbitmq 的 GitHub 仓库下载 https://github.com/rabbitmq/rabbitmq-server/releases rabbitmq 是 erlang 语言编写的&#xff0c;需要先安装 erlang https://github.com/rabbitmq/erlang-rpm/releases 安装 使用rz命令上传 erlang 和 …

【linux】yumvim工具理解使用

目录 Linux 软件包管理器 yum 关于 rzsz 注意事项 查看软件包 Linux开发工具 Linux编辑器-vim使用 vim的基本概念 vim的基本操作 vim正常模式命令集 vim末行模式命令集 简单vim配置 配置文件的位置 sudo提权 Linux 软件包管理器 yum 1.yum是什么&#xff1…

Jenkins动态slave

目录 所需环境 安装nfs 部署Jenkins 安装插件 ​编辑添加凭据 配置动态slave 连接kubernetes集群 ​编辑配置Jenkins地址 ​编辑配置Pod模板 ​编辑确认代理端口 创建任务测试 在当今软件开发生命周期中&#xff0c;持续集成/持续部署&#xff08;CI/CD&#xff09;已…

软件测试面试会问哪些问题?(二)

三、测试理论论 3.1 你们原来项目的测试流程是怎么样的 我们的测试流程主要有三个阶段&#xff1a;需求了解分析、测试准备、测试执行。 1、需求了解分析阶段 我们的 SE 会把需求文档给我们自己先去了解一到两天这样&#xff0c;之后我们会有一个需求澄清会议&#xff0c;我们会…

es数据备份和迁移Elasticsearch

Elasticsearch数据备份与恢复 前提 # 注意&#xff1a; 1.在进行本地备份时使用--type需要备份索引和数据&#xff08;mapping,data&#xff09; 2.在将数据备份到另外一台ES节点时需要比本地备份多备份一种数据类型&#xff08;analyzer,mapping,data,template&#xff09; …

计算机缺失ffmpeg.dll如何修复,五种详细的修复教程分享

当你在使用电脑过程中&#xff0c;突然遇到系统或软件弹出提示信息&#xff0c;告知“ffmpeg.dll文件丢失”怎么办&#xff1f;当电脑提示ffmpeg.dll丢失时&#xff0c;可能会导致一些应用程序无法正常运行或出现错误提示。下面我将介绍5种解决电脑提示ffmpeg.dll丢失的方法。 …

142.栈和队列:用栈实现队列(力扣)

题目描述 代码解决 class MyQueue { public:stack<int> stIn; // 输入栈&#xff0c;用于push操作stack<int> stOut; // 输出栈&#xff0c;用于pop和peek操作MyQueue() {}void push(int x) {stIn.push(x); // 将元素压入输入栈}int pop() {// 如果输出栈为空&…

16. Elasticsearch面试题汇总

Java全栈面试题汇总目录-CSDN博客 1. 什么是Elasticsearch? Elasticsearch是一个基于Lucene的搜索引擎。它提供了具有HTTP Web界面和无架构JSON文档的分布式&#xff0c;多租户能力的全文搜索引擎。 Elasticsearch是用Java开发的&#xff0c;根据Apache许可条款作为开源发布…

Docker镜像源自动测试镜像速度,并选择速度最快的镜像

国内执行如下代码 bash <(curl -sSL https://gitee.com/xjxjin/scripts/raw/main/check_docker_registry.sh)国外执行如下代码 bash <(curl -sSL https://github.com/xjxjin/scripts/raw/main/check_docker_registry.sh)如果有老铁有比较不错的镜像源&#xff0c;可以提…

局域网传文件怎么操作?轻松实现文件共享!

在现代的办公和生活中&#xff0c;局域网传文件已经成为一种非常常见和方便的方式&#xff0c;可以快速、安全地在局域网内进行文件传输。无需依赖互联网&#xff0c;局域网传文件可以帮助团队成员之间共享文件、备份数据、进行协作等。本文将介绍三种常见的方法&#xff0c;帮…

word-形状绘制、smartart、visio

一、人员架构图绘制 小技巧&#xff1a; 1、ctrlshift水平复制 2、点击图形&#xff0c;右键设置为默认形状 3、插入-形状-右键-锁定绘图模式&#xff0c;按esc退出状态 4、插入-形状-新建绘图画布&#xff0c;代替组合问题 画布中存在锚点&#xff0c;便于直线连接 二、s…