【优秀python案例】基于百度贴吧的数据采集与文本分析设计与实现

news2024/11/24 10:29:53
  1. 数据采集实现:

对百度贴吧帖子数据的采集。首先,使用requests库发送HTTP请求,通过设置请求头模拟浏览器访问,获取网页的HTML内容。然后,利用BeautifulSoup库对HTML内容进行解析,以便提取所需的信息。

在循环中,我们指定了要爬取的页面数量(300页),根据每一页的URL进行循环请求。在每个页面上,我们使用正则表达式提取<a>标签的href和title属性值,其中href存储帖子的链接,title存储帖子的标题。

接下来,我们将提取到的链接和标题存储到一个CSV文件中,以便后续分析和处理。首先创建一个CSV文件,并写入列名(链接和标题)。然后,将每个帖子的链接和标题作为一行写入CSV文件。

最后,为了防止被网站反爬虫机制封锁IP,我们在每次请求之间加入随机的延时,以模拟人类的访问行为。数据采集结果如下图:

数据详情页采集:

我们能够自动化地从百度贴吧采集帖子的详细信息,包括帖子内容、发文时间、IP归属地和用户名等。这些信息可以用于进一步的文本分析、用户行为研究等。需要注意遵守相关的爬取规则和法律法规,尊重网站的隐私政策和用户权益。同时,为了防止被网站反爬虫机制封锁IP,我们在每次请求之间加入适当的延时,以模拟人类的访问行为。

首先,使用pandas库读取之前保存的帖子链接和标题数据文件百度贴吧帖子.csv,并转换为DataFrame格式,方便后续遍历。

然后,通过循环遍历DataFrame中的每一行数据,提取帖子的链接,并构建完整的帖子URL。接着,使用requests库发送HTTP请求,获取帖子页面的HTML内容。

在每个帖子页面上,我们使用BeautifulSoup库对HTML内容进行解析,以提取帖子的详细信息。具体包括帖子的内容、发文时间、IP归属地和用户名等。通过查找相应的HTML标签和属性,我们可以定位到这些信息,并提取出来。

最后,将帖子的详细信息添加到原始数据行中,并将每行数据写入到一个新的CSV文件百度贴吧帖子详情.csv中,以便后续分析和处理。在写入CSV文件时,我们使用csv库的writerow()方法将每行数据写入文件。数据采集结果如下图:

2、情感分析实现:
我们可以对文本数据进行情感分析,并了解数据中的情感倾向。这对于了解用户意见、产品评价、舆情分析等方面具有重要意义,为决策提供参考依据。同时,需要注意情感词典的准确性和适用性,以及文本预处理的影响,以获得更准确和可靠的情感分析结果。

首先,通过读取保存在Excel文件中的数据集,使用pandas库将数据加载到DataFrame中。

接下来,读取情感词典文件,将其中的词语根据情感分类进行分类整理。将词语按照七种情绪(喜悦、好、惊奇、愤怒、悲伤、恐惧、厌恶)进行归类。

然后,定义了一个函数来对每条文本进行情感计算。该函数会将文本进行中文分词,并统计其中出现的情感词汇的频率。根据情感词汇的分类,计算正向情绪和负向情绪的得分,并返回计算结果。

在主程序中,使用apply()方法调用情感计算函数,对每条文本进行情感计算,并将计算结果添加到DataFrame中。

最后,根据计算结果,将情感进行分类判断,即根据正向情绪和负向情绪的得分比较,判断情感是积极、消极还是中性,并将结果添加到DataFrame中。

代码执行完毕后,将计算结果保存到Excel文件中,并使用matplotlib和seaborn库对情感分析结果进行可视化展示。通过饼图展示不同情感类别的占比情况。情感分析结果如下图:

3、主题分析

我们可以对文本数据进行主题分析,发现隐藏在文本中的不同主题,并了解每个主题所代表的关键词和数量。主题分析可以应用于文本挖掘、舆情监测、用户兴趣分析等领域,为决策提供重要参考依据。需要注意合理设置停用词和调整模型参数,以获得更准确和有意义的主题分析结果。

首先,读取保存在CSV文件中的帖子详情数据集,并将多个数据集合并为一个DataFrame。

接下来,通过整合停用词库文件,构建停用词列表。停用词是指在文本分析中无需考虑的常见词语,如标点符号、介词等。然后,使用jieba库对评论文本进行分词,并根据停用词和特定规则对词语进行过滤,只保留有意义的词语。

在分词和过滤后,将清洗后的评论数据保存回DataFrame的新列中。接着,使用TfidfVectorizer类进行TF-IDF(Term Frequency-Inverse Document Frequency)转换,将评论文本转换为数值特征表示。

然后,通过KMeans算法寻找最优聚类数,即确定最佳的主题数量。利用轮廓系数(silhouette score)评估聚类结果的质量,并绘制聚类数与轮廓系数的折线图。

接下来,使用LatentDirichletAllocation类进行LDA(Latent Dirichlet Allocation)建模,将评论文本进行主题分析。设置主题数量,并训练LDA模型。使用pyLDAvis库进行可视化,生成主题-关键词矩阵,并将结果保存为HTML文件。

最后,遍历每个主题,获取主题的关键词和数量,并打印出来。这些关键词可以帮助我们理解每个主题的特点和内容。主题分析结果如下:

词云图

轮廓图

主题分析图

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

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

相关文章

AI回答:C#项目编译后生成部分文件的主要职责

【引入】以ConsoleApp1为例&#xff0c;请问C#编译之后以下文件有啥用 1.bin\runtimes 文件夹存放什么&#xff0c;有什么用&#xff1f; bin\runtimes 文件夹存放了项目的运行时相关文件&#xff0c;这些文件包括了各种目标平台的运行时库。 2.bin\生成的exe文件可以在别的电脑…

(这是让文心一言生成的文心一言指令博客)3分钟学会写文心一言指令:解锁AI创作新境界

3分钟学会写文心一言指令&#xff1a;解锁AI创作新境界 在这个AI技术日新月异的时代&#xff0c;文心一言作为领先的智能语言模型&#xff0c;正逐步改变着我们的创作与交流方式。无论是撰写文章、创作诗歌&#xff0c;还是进行日常对话&#xff0c;文心一言都能凭借其强大的语…

记忆化搜索——1

目录 1.斐波那契数 2.不同路径 3.最长递增子序列 4.猜数字大小2 5.矩阵中的最长递增路径 1.斐波那契数 该题规律很明显&#xff0c;就直接放记忆化搜索的版本了 class Solution { public:int dfs(int n){if(n0||n1)//递归出口{return n;}if(f[n-1]-1)//检查是否已经记忆过…

计算机网络中拥塞控制的门限值怎么设置

拥塞避免的门限值设置主要涉及到加权随机早期检测&#xff08;‌WRED&#xff09;‌技术&#xff0c;‌这是一种拥塞避免机制&#xff0c;‌通过为每个队列设定一对低门限和高门限值来实现。‌具体来说&#xff0c;‌当队列长度小于低门限时&#xff0c;‌不丢弃报文&#xff0…

64 lambda 表达式

lambda 表达式常用来声明匿名函数&#xff0c;即没有函数名字的临时使用的小函数&#xff0c;常用在临时需要一个类似于函数的功能但又不想定义函数的场合。 lambda 表达式只可以包含一个表达式&#xff0c;不允许包含其他复杂的语句&#xff0c;但在表达式中可以调用其他函数…

Flink实战(10)-checkpoint容错保证

0 前言 程序在 Flink 集群运行&#xff0c;某个算子因为某些原因出现故障&#xff0c;如何处理 在故障恢复后&#xff0c;如何保证数据状态&#xff0c;和故障发生之前的数据状态一致? 1 什么是 checkpoint(检查点)? Checkpoint 能生成快照(Snapshot)。 若 Flink 程序崩…

ResNet 网络中的残差单元

今晚看《深度学习推荐系统实战》这本书&#xff0c;读到这样一句话&#xff0c;残差单元中的两层 ReLU 网络其实拟合的是输出和输入之间的“残差” x o − x i x^o-x^i xo−xi &#xff0c;想看看微信读书的 AI 问书新功能对这句话怎么理解&#xff0c;原以为会像其他大模型一…

H20 首发!上 Neolink.AI 免费尝鲜

AI 原生服务平台 Neolink.AI 正式上线&#xff01;Neolink.AI 致力于整合关键要素——算力、数据、知识、模型与企业应用&#xff0c;旨在为 AI-Native 应用的构建提供高效能的 GPU 算力资源和全面的一站式数据与 AI 平台产品服务。 #高性能千卡集群免费尝鲜# 今天&#xff0…

[Vue3] 4 computed

前言 … 目标 1 computed的用法 computed的用法 computed 计算属性用法与vue2的类似 引入 import { reactive,computed } from vue使用 setup(){let person reactive({firstName:张,lastName:三})// 简单写法 - 只有读// person.fullName computed(()>{// return…

Windows11手动安装linux分发版

Manual installation steps for older versions of WSL | Microsoft LearnStep by step instructions to manually install WSL on older versions of Windows, rather than using the wsl install command.https://learn.microsoft.com/en-us/windows/wsl/install-manual下载完…

【算法 03】雇佣问题

“雇用问题”及其算法优化 在日常生活和工作中&#xff0c;我们经常会遇到需要从多个选项中做出选择的情况&#xff0c;而“雇用问题”正是这样一个典型的例子。在这个问题中&#xff0c;我们不仅要考虑如何高效地找到最佳候选人&#xff0c;还要关注整个过程中的成本。今天&a…

Tomcat漏洞

一、Tomcat 漏洞描述 当 Tomcat运行在Windows操作系统时&#xff0c;且启用了HTTPPUT请求方法(例如&#xff0c;将readonly初始化参数由默认值设置为false)&#xff0c;攻击者将有可能可通过精心构造的攻击请求数据包向服务器上传包含任意代码的JSP 文件&#xff0c;JSP文件中…

docker系列11:Dockerfile入门

传送门 docker系列1&#xff1a;docker安装 docker系列2&#xff1a;阿里云镜像加速器 docker系列3&#xff1a;docker镜像基本命令 docker系列4&#xff1a;docker容器基本命令 docker系列5&#xff1a;docker安装nginx docker系列6&#xff1a;docker安装redis docker系…

蒲公英G5-2250路由器之收集各种硬件的配置页面

前言&#xff1a;此篇文章是为了更好的让大家了解各个路由器的后台设置页面具体有哪些功能&#xff0c;更加的清晰直观&#xff01;&#xff08;如有雷同纯属巧合&#xff0c;如有侵权联系删除&#xff01;&#xff09; 云管理平台 本地地址IP/oraybox/login.html 本地配置页…

一把手带你了解Bigo Ads联动休闲真金游戏出海营销策略

一把手带你了解Bigo Ads联动休闲真金游戏出海营销策略 在探索Bigo Ads作为投放海外游戏广告的平台时&#xff0c;精准定位与创意融合成为了成功的关键。首先&#xff0c;深入理解目标市场的文化习俗与玩家偏好至关重要。不同地区的玩家对于游戏类型、画风乃至广告语言风格都有…

【链表OJ】常见面试题 3

文章目录 1.[环形链表II](https://leetcode.cn/problems/linked-list-cycle-ii/description/)1.1 题目要求1.2 快慢指针1.3 哈希法 2.[随机链表的复制](https://leetcode.cn/problems/copy-list-with-random-pointer/description/)2.1 题目要求2.2 迭代法 1.环形链表II 1.1 题目…

KEIL5芯片包下载

一、打开KEIL芯片包下载网址 Arm Keil | Devices 二、搜索要下载的芯片型号 三、安装

CSP初赛知识点讲解(二)

CSP初赛知识点讲解&#xff08;二&#xff09; 进制转换基本定义n进制转十进制十进制转n进制n进制转m进制小数的进制转换 例题训练&#xff08;四&#xff09; 进制转换 基本定义 十进制&#xff1a;逢十进一(包含数字0~9) ( 365 ) 10 3 1 0 2 6 1 0 1 5 1 0 0 (365)_{…

如何提高编程能力?(来自准大三学长的含泪建议)

种一棵树最好是十年前&#xff0c;其次是现在 想了解更多内容可以看我主页&#xff1a;GGBondlctrl-CSDN博客 1.前言 以下是小编的亲身经历哟 &#xff08;1&#xff09;大一&#xff0c;摆烂 -------和每个人一样&#xff0c;大学都是带着美好的憧憬&#xff0c;我开始学习…

Apache漏洞

四、 CVE-2021-41773 Apache HTTP Server 路径穿越漏洞 漏洞简介 该漏洞是由于Apache HTTP Server 2.4.49版本存在目录穿越漏洞,在路径穿越目录<Directory/>Require all granted</Directory>允许被访问的的情况下(默认开启)攻击者可利用该路径穿越漏洞读取到Web…