Python采集微博评论做词云图

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

python更多源码/资料/解答/教程等 点击此处跳转文末名片免费获取

环境使用:

  • Python 3.10

  • Pycharm

第三方模块使用:

  • import requests >>> pip install requests

  • import wordcloud >>> pip install wordcloud

  • import jieba >>> pip install jieba

爬虫基本流程:

一. 数据来源分析
1. 明确需求: 明确采集的网站以及数据内容
    - 网址: https://weibo.com/2803301701/NxcPMvW2l
    - 数据: 评论内容
2. 抓包分析: 通过开发者工具进行抓包
    - 打开开发者工具: F12
    - 刷新网页
    - 通过关键字查找对应的数据
        关键字: 评论的内容
    数据包地址: https://weibo.com/ajax/statuses/buildComments?is_reload=1&id=4979141627611265&is_show_bulletin=2&is_mix=0&count=10&uid=2803301701&fetch_level=0&locale=zh-CN
二. 代码实现步骤
1. 发送请求 -> 模拟浏览器对于url地址发送请求
2. 获取数据 -> 获取服务器返回响应数据
3. 解析数据 -> 提取评论内容
4. 保存数据 -> 保存本地文件 (文本 csv Excel 数据库)

多页数据采集: 分析请求链接变化规律(主要看请求参数)

翻页: 点击下一页 / 滑动
flow: 0 多了这个参数
max_id: 第一页是没有 第二/三页一串数字
count: 第一页 10 第二/三页 20

代码展示

数据采集
'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:926207505
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
# 导入数据请求模块
import requests
import pandas as pd

# 创建空列表
lis = []
def get_content(max_id):
    """1. 发送请求 -> 模拟浏览器对于url地址发送请求"""
    # 模拟浏览器
    headers = {
        # Referer 防盗链
        'Referer':'https://weibo.com/2803301701/NxcPMvW2l',
        # User-Agent 用户代理
        'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36'
    }
    """
    https://weibo.com/ajax/statuses/buildComments?is_reload=1&id=4979141627611265&is_show_bulletin=2&is_mix=0&count=10&uid=2803301701&fetch_level=0&locale=zh-CN
        - 问号前面: 请求链接
        - 问号后面: 查询参数
    """
    # 请求网址
    url = 'https://weibo.com/ajax/statuses/buildComments'
    # 请求参数
    data = {
        'is_reload': '1',
        'id': '4979141627611265',
        'is_show_bulletin': '2',
        'is_mix': '0',
        'max_id': max_id,
        'uid': '2803301701',
        'fetch_level': '0',
        'locale': 'zh-CN',
    }
    # 发送请求
    response = requests.get(url=url, params=data, headers=headers)
    """2. 获取数据 -> 获取服务器返回响应数据"""
    json_data = response.json()
    """3. 解析数据 -> 提取评论内容"""
    # 提取评论所在列表
    content_list = json_data['data']
    # for循环遍历, 提取列表里面元素
    for index in content_list:
        content = index['text_raw']
        dit = {
            '内容': content
        }
        lis.append(dit)
        """保存数据"""
        with open('data.txt', mode='a', encoding='utf-8') as f:
            f.write(content)
            f.write('\n')
        print(content)
    next_num = json_data['max_id']
    return next_num


if __name__ == '__main__':
    lis = []
    max_id = ''
    for page in range(1, 11):
        max_id = get_content(max_id)

    df = pd.DataFrame(lis)
    df.to_excel('data.xlsx', index=False)
制作词云图
'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:926207505
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
# 导入结巴分词
import jieba
# 导入词云图模块
import wordcloud

"""词云分析"""
# 读取文件内容
f = open('data.txt', encoding='utf-8').read()
# 分词
txt = jieba.lcut(f)
# 把列表合并成字符串
string = ' '.join(txt)
# 制作词云图配置
wc = wordcloud.WordCloud(
    font_path='msyh.ttc',
    width=1000,  # 宽
    height=700, # 高
    background_color='white', # 背景颜色 默认黑色
)
# 导入内容
wc.generate(string)
wc.to_file('词云_3.png')
print(txt)

尾语

最后感谢你观看我的文章呐~本次航班到这里就结束啦 🛬

希望本篇文章有对你带来帮助 🎉,有学习到一点知识~

躲起来的星星🍥也在努力发光,你也要努力加油(让我们一起努力叭)。

最后,宣传一下呀~👇👇👇更多源码、资料、素材、解答、交流皆点击下方名片获取呀👇👇

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

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

相关文章

软件工程造价师证书有用吗?难不难考?

🎯软件工程造价师证书是有用的,它证明了持有人具备评估和估算软件开发cheng本、进度和资源规划的能力。✔️在IT行业中,受高度重视,特别是在软件开发和项目管理领域。 👩软件工程造价师考试难易程度因人而异。该证书需…

Java技术专题:「入门到精通系列」深入探索常用的六种加密技术和实现

文章目录 1. 引言2. 对称加密3. 非对称加密4. 哈希算法5. 消息摘要6. 数字签名7. 数字证书8. 拓展功能与未来展望 🎉欢迎来到Java学习路线专栏~探索Java中的静态变量与实例变量 ☆* o(≧▽≦)o *☆嗨~我是IT陈寒🍹✨博客主页:IT陈寒的博客&am…

【Python学习】Python学习5-条件语句

目录 【Python学习】Python学习5-条件语句 前言if语句if语句判断条件简单的语句组参考 文章所属专区 Python学习 前言 本章节主要说明Python的条件语句,Python条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块。 …

这些专利知识你知道吗?

专利作为一种重要的知识产权保护形式。专利不仅成为了企业核心竞争力的重要组成部分,也成为了国家创新发展的重要支撑。 专利是指国家专利主管机关授予发明创造申请人的一种专有权,这种专有权具有独占性、排他性和法律强制性,能够为持有者带来…

Rough.js:创建手绘、草图外观的图形

Rough.js 是一个小型的(<9kB gzipped)图形库&#xff0c;它可以让你以草图、手绘风格进行绘制。 该库定义了绘制直线、曲线、圆弧、多边形、圆和椭圆的基元。它还支持绘制 SVG 路径。 Rough.js 可以同时处理 Canvas 和 SVG。 安装 从npm安装&#xff1a; npm install --s…

Linux文件系统和日志分析

一、inode表结构 1. inode表 inode号在同一个设备上是唯一的。 inode号是有限资源&#xff0c;它的大小和磁盘大小有关。 访问文件的基本流程 根据文件夹的文件名和inode号的关系找到对应的inode表&#xff0c;再根据inode表&#xff08;属主 属组&#xff09;当中的指针找到磁…

基于SSM的校内信息服务发布系统的设计与实现

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;Vue 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#xff1a;是 目录…

NX/UG二次开发—C\C++开发单个DLL支持多版本NX一种方法

1、去除附加包含目录下的NX相关的lib文件&#xff1a; 2、从对应的dll导出ufun函数和NXopen函数&#xff1a; libufun.dll; libufun_cam.dll; libufun_cae.dll; libufun_die.dll; libufun_vdac.dll; libufun_weld.dll; libugopenint.dll; libugopenint_cae.dll; libugopenint_…

电子版报刊怎么制作

制作电子版报刊是许多媒体和出版机构正在探索的一种新的出版方式。随着数字技术的不断发展&#xff0c;电子版报刊已经成为了一种越来越受欢迎的选择。那么&#xff0c;如何制作电子版报刊呢&#xff1f; 首先&#xff0c;你需要确定你的报刊的主题和受众。这将帮助你选择适合的…

KPU特征识别

前面的颜色识别、二维码识别都是使用了一些简单的图像处理功能&#xff0c;而更高 级的机器视觉就需要使用 KPU 。可以简单类别为计算机的 GPU &#xff08;显卡&#xff09;&#xff0c;本质是 实现高速的图像数据运算 我们来简单介绍一下 K210 的 KPU 。 KPU 是 K21…

Cadence记录

第三讲原理图的绘制和后续处理 一、绘制原理图 1.同一个页面内创建电气互联 连线方式2种 使用连线(wire) 使用网络名&#xff08;net alias&#xff09; 检查网络是否连接&#xff0c;如图显示则好着 2.不同页面之间创建电气互联 左右之分&#xff0c;表示在这个页面的信号是…

锁原理剖析-LockSupport工具类

LockSupport工具类 JDK中的rt.jar包里面的LockSupport是个工具类&#xff0c;它的主要作用是挂起和唤醒线程&#xff0c;该工具类是创建锁和其他同步类的基础。 LockSupport类与每个使用它的线程都会关联一个许可证&#xff0c;在默认情况下调用LockSupport类的方法的线程是不…

第2章 JavaScript基本语法

学习目标 了解什么是变量&#xff0c;能够说出变量的概念 掌握变量的命名规则&#xff0c;能够为变量命名 掌握变量的声明与赋值&#xff0c;能够声明变量并为其赋值 熟悉数据类型的分类&#xff0c;能够说出JavaScript中有哪些数据类型 掌握常用的基本数据类型&#xff0c…

【经验分享】如何看论文的分区、SCI检索号、EI检索号等信息

0 前言 一般而言&#xff0c;被SCI检索的论文&#xff0c;都会同时被EI检索。我们以论文《Learning Disentangled Representation for Multimodal Cross-Domain Sentiment Analysis》为例&#xff0c;讲解一下如何查询论文的各项信息。 我们首先百度这个论文 可以看到它是发表…

什么是企业数字化转型?数字化的价值体现在哪里?

从2015年接触平安的数字化转型&#xff0c;到2021年承接阿里云的服务数字化项目&#xff0c;再到2023年主导大大小小10来个数字化项目&#xff0c;8年的时间&#xff0c;数字化对我而言已经从一个“新词”变成了一个“旧词”。 8年过去&#xff0c;数字化也从一道企业的“选做…

轻松学会电脑如何录制音频

随手录音&#xff0c;保留证据以便后续出现问题进行判定&#xff0c;或者保存会议音频记录方便后续根据录音内容整理自己会议记录不足之处等等&#xff1b;越来越多的地方需要用到录音&#xff0c;那么在电脑上该如何进行音频录制呢&#xff1f;特别是使用比较广泛的Windows电脑…

基础算法【解题思路】:单链表的倒数第k个节点

定义指针p1&#xff0c;让p1走k步&#xff1a; 定义指针p2&#xff0c;在p1走了k步的时候&#xff0c;p2也跟着走。 p1走到最后的时候走了n-k步&#xff0c;停留在最后的null结点。 P2从头结点开始&#xff0c;也跟着走到了n-k步&#xff0c;而n-k恰好是倒数第k个节点。 例…

【Axure高保真原型】日期天数加减计算器

今天和大家分享日期天数加减计算器的原型模板&#xff0c;我们通过这个模板选择指定日期&#xff0c;然后填写需要增加或者减少的天数&#xff0c;点击确认按钮后&#xff0c;就可以计算出对应的结束日期&#xff0c;本案例提供中继器版的日期选择器&#xff0c;以及JS版的日期…

mybatisPlus 将List<String>字段转成json字符串,使用JacksonTypeHandler以及自定义类型处理器实现

文章目录 场景使用JacksonTypeHandler实现类型转换自定义StringListTypeHandler处理器实现 场景 项目中经常需要将List转成json存储到配置文件中, mybatisPlus默认实现了JacksonTypeHandler&#xff0c;GsonTypeHandler&#xff0c;FastjsonTypeHandler&#xff0c;也可以自定义…

@Transactional注解的一个很容易被忽略的错误用法

Transactional注解的一个很容易被忽略的错误用法 今日审查代码时发现对Transactional注解的一个如下用法&#xff1a; //StockController.javaAutoWired private StockService stockService//商品出库 PostMapping("/product/stock/out-stock") public Boolean pro…