简单的用Python采集下微博评论,制作可视化词云图

本文介绍了如何使用Python和相关库(requests,wordcloud,jieba)获取微博评论数据,然后通过jieba分词和wordcloud模块生成词云图的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简单的用Python来获取微博评论,制作词云图。

首先准备环境模块

环境使用

  • Python 3.8或以上版本即可
  • Pycharm 任意版本

模块使用

import requests 
import wordcloud 
import jieba  

以上三个模块都需要安装,直接pip install 加上模块名安装即可。

爬虫基本流程

一. 数据来源分析

  1. 明确需求: 明确采集的网站以及数据内容
    - 网址: 目标地址
    - 数据: 评论内容
  2. 抓包分析: 通过开发者工具进行抓包
    - 打开开发者工具: F12
    - 刷新网页
    - 通过关键字查找对应的数据
    关键字: 评论的内容
    数据包地址: 数据包地址

二. 代码实现步骤

  1. 发送请求 -> 模拟浏览器对于url地址发送请求
  2. 获取数据 -> 获取服务器返回响应数据
  3. 解析数据 -> 提取评论内容
  4. 保存数据 -> 保存本地文件 (文本 csv Excel 数据库)

代码展示

数据采集部分

1、发送请求 -> 模拟浏览器对于url地址发送请求

# 模拟浏览器
headers = {
    # Referer 防盗链
    'Referer':'https://屏蔽了/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'
}

# 请求网址
url = 'https://屏蔽了,改一下/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()
print(json_data)

3、解析数据 -> 提取评论内容

# 提取评论所在列表
content_list = json_data['data']
# for循环遍历, 提取列表里面元素
for index in content_list:
    content = index['text_raw']
    print(content)

4、保存数据

保存文本

with open('data.txt', mode='a', encoding='utf-8') as f:
    f.write(content)
    f.write('\n')
print(content)

保存表格

    with open('data.txt', mode='a', encoding='utf-8') as f:
        f.write(content)
        f.write('\n')
    print(content)

df = pd.DataFrame(lis)
df.to_excel(excel_writer:'data.xlsx', index=False) 

数据采集和可视化我还录制了详细的视频讲解,跟代码一起打包好了,文末名片自取,点我跳转

可视化部分

# 导入结巴分词
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)

词云图效果展示


好了,本次分享就结束了,下次再见!

↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓下方名片↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

### Python 爬虫微博数据采集可视化实现方案 #### 1. 技术栈选择 为了实现微博数据的爬取和可视化分析,可以采用以下技术栈: - 数据采集:`Requests`、`BeautifulSoup`、`Selenium` 或 `Scrapy`[^2]。 - 数据处理:`Pandas` 和 `Numpy` 用于清洗和整理数据[^3]。 - 情感分析:`SnowNLP` 或结合 `TF-IDF` 进行关键词提取和主题挖掘[^3]。 - 可视化工具:`Echarts`、`Matplotlib`、`Seaborn` 或 `Plotly`[^4]。 #### 2. 数据采集 微博数据的采集可以通过 API 接口或网络爬虫实现。考虑到微博平台的反爬机制,推荐使用以下方法: - **API 接口**:如果微博开放了相关接口,可以直接调用官方 API 获取数据,这种方式更稳定且合法[^5]。 - **网络爬虫**:若无法使用 API,则需要借助 `Requests` 和 `BeautifulSoup` 解析网页内容,或者使用 `Selenium` 模拟浏览器行为绕过反爬机制[^2]。 #### 3. 数据预处理 在采集到原始数据后,需要进行以下预处理步骤以确保数据质量: - **去重**:删除重复的数据记录。 - **清洗**:移除无关字符或噪声数据。 - **格式化**:将数据转换为统一的结构化格式,便于后续分析。 #### 4. 数据挖掘 通过数据挖掘技术,可以从微博数据中提取有价值的信息: - **文本分析**:统计词频,生成词云图。 - **情感分析**:利用 `SnowNLP` 对微博内容进行正面、负面和中性情感分类[^3]。 - **主题建模**:使用 `LDA` 或 `TF-IDF` 方法挖掘热门话题。 #### 5. 数据可视化 可视化是将分析结果直观展示的重要环节。以下是常用的可视化方式: - **时间序列图**:展示微博热度随时间的变化趋势。 - **词云图**:呈现微博中的高频词汇[^3]。 - **情感分布图**:通过饼图或柱状图展示正负面情绪的比例。 - **地图可视化**:根据地理位置信息绘制热力图,显示不同地区的微博活跃度。 #### 6. 系统架构设计 系统可以分为前端和后端两部分: - **后端**:使用 `Python` 和 `Django` 或 `Flask` 框架开发,负责数据采集、处理和存储。 - **前端**:采用 `HTML`、`CSS` 和 `JavaScript` 构建用户界面,结合 `Echarts` 实现交互式图表展示[^3]。 ```python # 示例代码:使用Requests抓取微博数据 import requests from bs4 import BeautifulSoup def fetch_weibo_data(url): headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36' } response = requests.get(url, headers=headers) soup = BeautifulSoup(response.text, 'html.parser') # 提取所需数据 data = [item.text for item in soup.find_all('div', class_='weibo-content')] return data url = "https://example.weibo.com" data = fetch_weibo_data(url) print(data) ``` #### 7. 数据存储 采集到的数据可以存储在关系型数据库(如 `MySQL`)中,便于后续查询和分析。表结构设计如下: - **微博表**:包含微博 ID、内容、发布时间、用户信息等字段。 - **评论表**:记录每条微博评论内容和时间戳。 - **情感分析表**:存储每条微博的情感分析结果[^5]。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值