【python】python手机评论抓取+情感分析(python代码+报告)【独一无二】

请添加图片描述


👉博__主👈:米码收割机
👉技__能👈:C++/Python语言
👉公众号👈:测试开发自动化
👉荣__誉👈:阿里云博客专家博主、51CTO技术博主
👉专__注👈:专注主流机器人、人工智能等相关领域的开发、测试技术。

【python】python手机评论抓取+情感分析(python代码+报告)


0. 需求分析

1)抓取评论数据
2)情感分析,统计词频
3)分析内容:https://item.jd.com/100011172363.html

在这里插入图片描述


1. 代码分析

该代码是一个简单的数据获取和分析程序。它包含以下几个部分:

1.1 导入必要的库

代码开始导入了一些必要的库,包括pymysql用于数据库连接,re用于正则表达式匹配,requests用于发送HTTP请求,collections用于计数,textblob用于文本情感分析,matplotlib用于绘图。

import pymysql
import re
import requests
from collections import Counter
from textblob import TextBlob
import matplotlib.pyplot as plt

1.2 write_data函数

该函数用于将文本数据写入数据库。它首先使用pymysql库建立与数据库的连接,然后执行插入语句将文本数据写入数据库表中。

def write_data(text):# 连接数据库cnx = pymysql.connect(host='127.0.0.1', user='root', password='root', db='huawei')# 创建游标对象cursor = cnx.cursor()# # 执行查询insert_sql = "INSERT INTO customers (content) VALUES (%s)"cursor.execute(insert_sql, (text,))# 提交事务cnx.commit()# 关闭游标和连接cursor.close()cnx.close()

1.3 DataFetcher类

该类用于从指定URL获取数据。它通过发送HTTP请求到指定的URL,并使用requests库获取响应。如果响应的状态码为200,表示请求成功,然后从响应内容中使用正则表达式提取文本数据。将提取的文本数据写入到common.txt文件中,并调用write_data函数将数据写入数据库。

class DataFetcher:def fetch_data(self):url = 'https://xxx.xxx.com/'params = {'appid': 'item-v3','functionId': 'pc_club_productPageComments','client': 'pc',# 省略...}response = requests.get(url, params=params)if response.status_code == 200:content = response.textcommon = re.findall('"content":"(.*?)"', content)with open('common.txt', 'a', encoding='utf-8') as f:for text in common:f.write(text + '\n')write_data(text)return "\n".join(common)else:return '请求失败,状态码:' + str(response.status_code)

1.4 save_data函数

该函数用于将数据保存到common.txt文件中。它使用’w’模式打开文件,将数据写入文件。


def save_data(data):with open('common.txt', 'w', encoding='utf-8') as f:f.write(data)

1.5 show_image函数

该函数用于对数据进行情感分析和关键词提取,并绘制词频统计图表。它首先使用textblob库对数据进行情感分析,计算情感得分。然后使用正则表达式提取关键词,并使用collections库进行计数,找出出现频率最高的前5个关键词。最后使用matplotlib库绘制词频统计图表。

   # 情感分析blob = TextBlob(data)sentiment_score = blob.sentiment.polarity# 关键词提取keywords = re.findall(r'\b\w+\b', data)keyword_counts = Counter(keywords).most_common(5)# 绘制词频统计图表keywords, counts = zip(*keyword_counts)plt.figure(figsize=(8, 6))plt.bar(keywords, counts)plt.title('Top 5 Keywords')plt.xlabel('Keywords')plt.ylabel('Count')plt.xticks(rotation=45)plt.show()

提取关键词:
在这里插入图片描述

👇👇👇关注公众号,回复 “手机评论抓取” 获取源码👇👇👇

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

快速排序的非递归实现、归并排序的递归和非递归实现、基数排序、排序算法的时间复杂度

文章目录 快速排序的非递归三数取中法选取key快速排序三路划分 归并排序的递归归并排序的非递归计数排序稳定性排序算法的时间复杂度 快速排序的非递归 我们使用一个栈来模拟函数的递归过程,这里就是在利用栈分区间。把一个区间分为 [left,keyi-1][key][keyi1,right…

TypeScript 学习笔记 环境安装-类型注解-语法细节-类-接口-泛型

文章目录 TypeScript 学习笔记概述TypeScript 开发环境搭建 类型注解类型推断 数据类型JS的7个原始类型Array数组object、Object 和 {}可选属性 ? 和 可选链运算符?. function函数TS类型: any类型 | unknow类型TS类型: void类型TS类型:never类型 (几乎…

Signal-iOS 5.9.0编译问题

1.当我们使用pod管理 pod SDWebImage/WebP , 执行 pod install 时,发生报错.先看具体报错 : 截屏2020-07-06 上午11.12.15.png 2.报错产生原因是由于git clone 的地址是 https://chromium.googlesource.com/webm/libwebp,需要FQ 3.不想FQ,可以使用github上的地址https://githu…

vue upload 下载

目录 上传 下载 get post 对象/文件流 download处理返回 文件流 axios.post 封装axios 后端直接返回文件流,打开下载文件是 [object Object],将res改成res.data即可 1.请求设置类型responseType: blob(如果没有设置,打…

蓝牙技术|低功耗蓝牙和LE Audio助力游戏设备行业发展

去年,蓝牙技术联盟官方宣布推出LE Audio,它以BLE为基础,旨在更好地兼顾音频质量和低功耗,以在多种潜在应用中显著增强用户体验。这在游戏行业中引起了轰动,由于其延迟显著降低,LE Audio在增强游戏体验方面展…

【计算机视觉 | 目标检测 | 图像分割】arxiv 计算机视觉关于目标检测和图像分割的学术速递(7 月 14 日论文合集)

文章目录 一、检测相关(6篇)1.1 LVLane: Deep Learning for Lane Detection and Classification in Challenging Conditions1.2 Garbage in, garbage out: Zero-shot detection of crime using Large Language Models1.3 Robotic surface exploration with vision and tactile …

asp.net core框架搭建1-搭建webapi,对数据增删改查接口模板(附源码)

文章目录 系列文章1.项目搭建1.1 新建Asp.net core webapi项目1.2 配置连接Mysql1.3 实现对mysql数据库的数据增删改查,接口1.3.1 根据id查询数据1.3.2 根据用户名模糊查询数据,并分页1.3.3 新增用户数据1.3.4 修改用户数据1.3.5 根据ID删除数据1.3.6 接…

【5G PHY】5G 调制与编码策略(MCS)介绍

博主未授权任何人或组织机构转载博主任何原创文章,感谢各位对原创的支持! 博主链接 本人就职于国际知名终端厂商,负责modem芯片研发。 在5G早期负责终端数据业务层、核心网相关的开发工作,目前牵头6G算力网络技术标准研究。 博客…

Redis对象结构 — RedisObject

目录 Redis 键值对数据库的全过程​编辑 RedisObject结构体 Redis的encoding编码方式 type对应的数据对象类型 Redis 键值对数据库的全过程 redisDb 结构,表示 Redis 数据库的结构,结构体里存放了指向了 dict 结构的指针;dict 结构&#…

Day_63-65 集成学习之 AdaBoosting

目录 Day_63-65 一. 基本概念介绍 1. 集成学习 2. 弱分类器与强分类器 二. AdaBoosting算法 1. AdaBoosting算法框架介绍 2. AdaBoosting算法过程 三. 代码的实现过程 1. WeightedInstances类 2. 构造弱分类器的StumpClassifier类和抽象类SimpleClassifier 3. 主类Booster的…

Unity 之 超级详细的隐私问题解决方案

Unity 之 助力游戏增长 -- 解决隐私问题 一,平台测试隐私问题二,解决方式一2.1 勾选自定义Mainifest2.2 修改自定义Mainifest2.3 隐私协议弹窗逻辑 三,解决方式二3.1 导出安卓工程3.2 创建上层Activity3.3 配置AndroidManifest 四&#xff0…

小红书Java后端一面,被问麻了

今天分享一篇小红书 2 年社招 Java 后端一面的面经,面试的风格是从一个知识一层一层深入问到底层。 从 Java IO,问到 socket 底层。从 Java 内存,问到操作系统内存。所以学习知识的时候,不要只看八股文,还是需要从点到…