欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Python3 知乎回答爬取+数据文本分析——如何判断一个人是否喜欢你 项目实战结论及步骤笔记

程序员文章站 2024-03-16 14:26:22
...

实现思路及准备

 **实现思路**
   1.利用知乎爬取回答 存入数据库 
   2.从数据库提取数据 过滤清洗
   3.词频统计,文本分析,做词云图,得结论
  **准备:**
   Python3、Mysql8.0、mysqlworkbench
   所需库:pymysql、json、requests、jieba、re、wordcloud、

爬取知乎动态页面存入数据库

一、爬取

Python3 知乎回答爬取+数据文本分析——如何判断一个人是否喜欢你 项目实战结论及步骤笔记
1.先点查看全部回答——F12——network——刷新页面——
Python3 知乎回答爬取+数据文本分析——如何判断一个人是否喜欢你 项目实战结论及步骤笔记
2.点击一个文件——preview ——找到一个文件类似这样 展开data里面有回答的就是(一般是answers开头的一个文件)——点旁边headers——复制它的Url
Python3 知乎回答爬取+数据文本分析——如何判断一个人是否喜欢你 项目实战结论及步骤笔记
3.到浏览器中打开——修改offset= 这里就可以改变页数
然后就可以用requests库,对页面进行爬取了
Python3 知乎回答爬取+数据文本分析——如何判断一个人是否喜欢你 项目实战结论及步骤笔记
这里记得加headers请求头 否则会报错

二、存入

1.在workbench中创建表 把answerer_name设置为主键 ,因为发现更改offset=后的页面会有许多重复回答Python3 知乎回答爬取+数据文本分析——如何判断一个人是否喜欢你 项目实战结论及步骤笔记
29.30行的定位需要把页面代码(json格式)去百度在线格式化一下 就可以找到定位的地方了Python3 知乎回答爬取+数据文本分析——如何判断一个人是否喜欢你 项目实战结论及步骤笔记
这里31行的sql语句是 replace into 且以answerer_name为主键 避免重复输入
2.输出结果, 这里一共爬了九百多条
Python3 知乎回答爬取+数据文本分析——如何判断一个人是否喜欢你 项目实战结论及步骤笔记

三、导出数据

1.export

Python3 知乎回答爬取+数据文本分析——如何判断一个人是否喜欢你 项目实战结论及步骤笔记
Python3 知乎回答爬取+数据文本分析——如何判断一个人是否喜欢你 项目实战结论及步骤笔记
Python3 知乎回答爬取+数据文本分析——如何判断一个人是否喜欢你 项目实战结论及步骤笔记

2.文件格式修改==(如果想用excel保存的话再做)==

(1)直接用excel打开会乱码
Python3 知乎回答爬取+数据文本分析——如何判断一个人是否喜欢你 项目实战结论及步骤笔记
(2)先用记事本打开——另存为 选择ANSI编码——保存
Python3 知乎回答爬取+数据文本分析——如何判断一个人是否喜欢你 项目实战结论及步骤笔记
再将新文件用excel方式打开就可以了

数据文本筛选、清洗

一、用正则去除数据中多余部分

Python3 知乎回答爬取+数据文本分析——如何判断一个人是否喜欢你 项目实战结论及步骤笔记

二、jieba分词,去除滥用词等

这里我把字典直接打在代码里了 大家可以写成文档再导入Python3 知乎回答爬取+数据文本分析——如何判断一个人是否喜欢你 项目实战结论及步骤笔记
代码后面有每步的注释

Python3 知乎回答爬取+数据文本分析——如何判断一个人是否喜欢你 项目实战结论及步骤笔记

词频结果及词云图

一、词频输出的结果

因为后面的词意义不大 所以就提取到这里
Python3 知乎回答爬取+数据文本分析——如何判断一个人是否喜欢你 项目实战结论及步骤笔记

二、词云图

1.代码

Python3 知乎回答爬取+数据文本分析——如何判断一个人是否喜欢你 项目实战结论及步骤笔记

2.词云图

Python3 知乎回答爬取+数据文本分析——如何判断一个人是否喜欢你 项目实战结论及步骤笔记

文本分析结论

根据回答者的词频统计的个人解释:
1.喜欢你的人主动的次数肯定多
2.喜欢你的人说“一起…吧”的话1定多
3.从跟你聊天的次数、频率自己想去吧
4.ta的眼神会告诉你
5.肯定会关心你
6.拒绝的次数肯定少

多说一句

如果根据大家恋爱前的聊天记录分析 肯定更准 我不介意你们打包发给我
不过我也没报多大希望,毕竟你们都没有对象。⁄(⁄ ⁄ ⁄ω⁄ ⁄ ⁄)⁄