想看看一个影片评论怎么样?python带你采集数据做词云

news2024/12/26 21:00:03

前言

嗨喽~大家好呀,这里是魔王呐 ❤ ~!

目录

      • 前言
      • 环境使用:
      • 模块使用
        • 安装python第三方模块:
      • 思路分析
      • 代码展示
        • 数据采集
        • 词云图
      • 尾语 💝

环境使用:

  • Python 3.8 解释器

  • Pycharm 编辑器

模块使用

  • import parsel >>> pip install parsel

  • import requests >>> pip install requests

  • import csv

安装python第三方模块:

  1. win + R 输入 cmd 点击确定, 输入安装命令 pip install 模块名 (pip install requests) 回车

  2. 在pycharm中点击Terminal(终端) 输入安装命令

( 更多资料、教程、文档点击此处跳转跳转文末名片加入君羊,找管理员小姐姐领取呀~ )

思路分析

一. 数据来源分析:

  1. 明确需求

    • 明确采集的网站是什么?

    • 明确采集的数据是什么?

    影评相关数据内容: 昵称/时间/内容/归属地…

  2. 抓包分析

    通过开发者工具进行抓包分析

    • 打开开发者工具: 在网页上面 F12 / 鼠标右键点击检查选择network

    • 刷新网页: 让网页数据重新加载一遍

    • 通过关键字搜索数据来源: 关键字<要获取的数据>

二. 代码实现步骤:

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

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

    开发者工具: response

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

    影评相关数据

  4. 保存数据, 把数据内容保存csv表格文件里面

代码展示

( 完整源码点击此处跳转跳转文末名片加入君羊,找管理员小姐姐领取呀~ )

数据采集

导入模块

# 导入数据请求模块 --> 第三方模块, 需要安装 pip install requests
import requests
# 导入数据解析模块 --> 第三方模块, 需要安装 pip install parsel
import parsel
# 导入csv模块 --> 内置模块, 不需要安装
import csv

0<起始数包含>, 201<末尾数不包含>, 20<步长>

for page in range(0, 201, 20):
    # 请求链接 字符串格式化方法 -->
    url = f'https://movie.****.com/subject/4811774/comments?start={page}&limit=20&status=P&sort=new_score'

伪装模拟

    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)

把获取下来html字符传数据<response.text>, 转换可解析的对象

    selector = parsel.Selector(response.text)

第一次提取所有内容

    divs = selector.css('div.comment-item')

把列表里面元素一个一个提取出来, for循环遍历

    for div in divs:
        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)

创建文件对象

f = open('影评.csv', mode='a', encoding='utf-8-sig', newline='')
# f 文件对象 fieldnames 表头/字段名
csv_writer = csv.DictWriter(f, fieldnames=[
    '昵称',
    '评分',
    '日期',
    '归属地',
    '评论',
    '有用',
])

写入表头

csv_writer.writeheader()

词云图

导入模块

# 导入结巴模块 --> 第三方模块, 需要安装 pip install jieba
import jieba
# 导入pandas --> 第三方模块, 需要安装 pip install pandas
import pandas as pd
# 导入词云模块 --> 第三方模块, 需要安装 pip install wordcloud
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)

尾语 💝

要成功,先发疯,下定决心往前冲!

学习是需要长期坚持的,一步一个脚印地走向未来!

未来的你一定会感谢今天学习的你。

—— 心灵鸡汤

本文章到这里就结束啦~感兴趣的小伙伴可以复制代码去试试哦 😝

👇问题解答 · 源码获取 · 技术交流 · 抱团学习请联系👇

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

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

相关文章

《玩转 Spring 全家桶》学习笔记Day1

Spring 诞生于2002年&#xff0c;成型于2003年。Spring Boot 负责构建、Spring Cloud 协调、Spring Cloud Data Flow 负责连接一切。Spring Framework理念&#xff0c;向后兼容&#xff0c;专注API设计&#xff0c;让选择无处不在&#xff0c;海纳百川&#xff0c;严苛的代码质…

N+1终于等到了 但却放弃了

在公司呆了8年了&#xff0c;做梦都想被开除&#xff0c;年底等到了。但......2021年年底绩效B&#xff0c;可是公司年终奖泡沫了&#xff1b;估摸着2022年公司可能会发奖金&#xff0c;那我也悄悄的给自己定了目标&#xff0c;大干一场&#xff0c;争取过年拿个好结果。跟着公…

Go语言的数据类型

博客主页&#xff1a;&#x1f3c6;看看是李XX还是李歘歘 &#x1f3c6; &#x1f33a;每天不定期分享一些包括但不限于计算机基础、算法、后端开发相关的知识点&#xff0c;以及职场小菜鸡的生活。&#x1f33a; &#x1f497;点关注不迷路&#xff0c;总有一些&#x1f4d6;知…

功率放大器模块在超微晶合金磁特性测量研究中的应用

客户需求&#xff1a;对超微晶合金磁特性测量中的波形发生与控制问题进行研究&#xff0c;实验系统有严格的体积要求&#xff0c;上位机可外置&#xff0c;测试系统需集成于机箱&#xff0c;机箱尺寸&#xff1a;1900mm500mm600mm。 解决方案&#xff1a;功率放大器模块采用安泰…

Golang的error和panic

博客主页&#xff1a;&#x1f3c6;看看是李XX还是李歘歘 &#x1f3c6; &#x1f33a;每天不定期分享一些包括但不限于计算机基础、算法、后端开发相关的知识点&#xff0c;以及职场小菜鸡的生活。&#x1f33a; &#x1f497;点关注不迷路&#xff0c;总有一些&#x1f4d6;知…

Python入门自学进阶-Web框架——30、DjangoAdmin项目应用-自定义用户认证续

一、前面实现的是DjangoAdmin实现的自定义用户认证管理&#xff0c;现在自己来实现管理功能&#xff0c;即在mytestapp中增加用户认证管理功能。 在UserProfile的model中&#xff0c;对password字段增加help_text属性&#xff1a; password models.CharField(_(password), m…

Linux 环境安装 jdk 或 openjdk

一、linux 环境安装JDK的tar.gz包&#xff0c;通用命令&#xff1a; 1、查看已安装的JDK版本rpm -qa | grep jdk2、删除不需要的JDK版本&#xff1a;rpm -e --nodeps java-1.8.0-openjdk3、解压新JDK至/usr/lib/jvm目录下tar -zxvf openjdk-1044_linux-x64_bin_ri.tar.gz -C /…

AOSP刷机笔记

下载官方镜像&#xff0c;下载对应AOSP&#xff0c;编译出的*.img替换到官方镜像对应的文件, 刷入 把证书放到aosp源码的system/ca-certificates/files文件夹里&#xff0c;lunch aosp_sailfish-user编译可以实现无root抓包 mkdir ~/bin PATH~/bin:$PATH curl -sSL https://ger…

什么是集中采购 集中采购管理软件介绍

什么是集中采购&#xff1f; 集中采购是指企业总部某特定部门对企业所有采购进行管控&#xff0c;他们负责获取整个组织需要的物资。这个部门负责与供应商联络、供应商寻源、合同管理、风险分析&#xff0c;以及从供应商那里获得所需物资的每项工作。 企业采用集中采购管理模…

什么叫joinquant量化策略?

joinquant量化主要是在数据挖掘上有特别的意义&#xff0c;不像平时我们在执行各个量化选股策略时&#xff0c;还要一个一个去输入去查询。而joinquant量化策略在开发方面就简便了很多&#xff0c;joinquant量化策略是运用到个股量化交易中能够针对各个股票数据都能快速挖掘出来…

mongodb安装和部署,并整合到Springboot

mongodb安装和部署,并整合到Springboot 1.linux上docker安装mongodb docker pull mongo:4.4.18使用docker命令启动&#xff1a; docker run -p 27017:27017 --name mongo \ -v /mydata/mongo/db:/data/db \ -d mongo:4.4.18运行容器 docker exec -it mongo /bin/bash# 进入…

C进阶_字符串查找库函数

strstr 查找strstr的文档&#xff0c;可知它的原型为&#xff1a; char *strstr( const char *string, const char *strCharSet ); 它的返回值&#xff0c;根据文档是这样的&#xff1a; Return Value Each of these functions returns a pointer to the first occurrence …

使用 YonBuilder 进行报表分析 - 扩展篇

使用 YonBuilder 进行报表分析 - 扩展篇 在上一篇文章中&#xff0c;我们讲解了如何构建简单的报表以及交叉表的基础配置。本篇文章通过对主子表、树型表以及数据穿透的创建来对 YonBuilder 的报表配置进行扩展介绍。 创建报表 首先&#xff0c;要先创建一个员工信息实体&…

CSS选择器整理学习(中)

书接上回&#xff0c;在前端项目开发中&#xff0c;有时候需要对特殊的元素进行特殊的处理&#xff0c;但有时候元素的位置不确定、层级不确定、数量不确定等问题&#xff0c;导致我们没办法进行元素的选择&#xff0c;这个时候我们就需要用到元素选择器了。 一、CSS选择器 1…

加油站视频监控智能分析盒基于yolov5

加油站视频监控智能分析盒基于yolov5人工智能视觉技术&#xff0c;对现场画面中明火和烟雾以及人员抽烟、打电话等违规行为进行识别。除此之外&#xff0c;还可以对现场画面中卸油时灭火器未按要求正确摆放以及静电释放时间不足和人员离岗等不规范行为进行自动预警。YOLOv5在YO…

【云原生】k8s图形化管理攻击之rancher

内容预知 前言 1. Rancher的相关知识 1.1 Rancher的简介 1.2 Rancher与k8s的关系及区别 1.3 Rancher具有的优势 2. Rancher的安装部署 2.1 实验环境与部署图分配 2.2 具体的部署操作 &#xff08;1&#xff09;在 rancher 节点下载 rancher 镜像 &#xff08;2&#xff…

程序员同事每天准点下班,原来是用了这6个开发工具

工欲善其事必先利其器&#xff0c;要想更加高效的做事情&#xff0c;就得先将工具变得锋利。那么对于程序员来说同样也是如此&#xff0c;如果要想每天早点下班&#xff0c;就必须借助于一些开发工具来提高自己的工作效率&#xff0c;今天就给大家总结一些工作中常用到的工具。…

【算法题解】11. 判断链表是否有环,并返回入环节点

文章目录题目解法一&#xff1a;循环标记Java代码实现Go 代码实现复杂度分析解法二&#xff1a;快慢指针Java 代码实现Go 代码实现复杂度分析这是一道 中等难度 的题&#xff0c;是 判断链表是否有环 的扩展&#xff0c;在有环的情况下返回入环节点&#xff0c; 依然是两种解法…

Disney 流媒体广告 Flink 的应用实践

摘要&#xff1a;本文整理自 Disney 广告智能执行总监郝又超、Disney 广告智能实时计算负责人李丁哲&#xff0c;在 FFA 主会场的分享。本篇内容主要分为四个部分&#xff1a;Disney 流媒体广告与实时应用业务场景实现实时平台构建未来展望Tips&#xff1a;点击「阅读原文」查看…

kafka.2 集群搭建

文章目录1.启动kakfa自带的zk2.启动kafka集群3.查看zookeeper的kafka节点信息启停kafka集群脚本创建主题增加分区模拟生产消费模拟消费组消费主题&#xff0c;查看offset1.启动kakfa自带的zk 参考&#xff1a;https://blog.csdn.net/justlpf/article/details/127261664?utm_m…