/TesterHome_hot_words_analyse

TesterHome_hot_words_analyse

Primary LanguagePythonGNU General Public License v2.0GPL-2.0

TesterHome_hot_words_analyse

社区精华帖的热词分析(菜鸟),写了个脚本,和大家分享。


流程

主要调用网站自带api(地址)。
btw: 获取精华帖列表: /topics.json (),接口返回分页有问题,放弃用这个接口。

爬取页面,取得帖子总数 (get_topics_number)

调用requests和re,抓取帖子总数

获取excellent帖子id列表 (get_excellent_topics_id_list)

获取完整的话题内容:/topics/:id.json
https://testerhome.com/api/v3/topics/3905.json

获取完整的话题内容 (get_topics_id_content)

获取完整的话题内容:/topics/:id.json
https://testerhome.com/api/v3/topics/3905.json

获取某个话题的回帖列表 ()

获取某个话题的回帖列表: /topics/:id/replies.json
https://testerhome.com/api#route-/topics/3905/replies.json

数据清洗(filter_html)

  • 小尾巴
  • 处理换行
  • HTML标签
  • url链接
  • 转义字符

调用jieba,基于 TF-IDF 算法的关键词抽取,去掉词性过滤

jieba.analyse.extract_tags(topics_all_contents, topK=20, withWeight=True, allowPOS=())

调用jieba,基于 TF-IDF 算法的关键词抽取,保留词性过滤

jieba.analyse.extract_tags(topics_all_contents, topK=20, withWeight=True, allowPOS=('ns', 'n', 'vn', 'v'))

调用jieba,基于 TextRank 算法的关键词抽取

jieba.analyse.textrank(topics_all_contents, topK=20, withWeight=True, allowPOS=('ns', 'n', 'vn', 'v'))

需要改进的点

  • 增加并发,提高抓取时间
  • 抓取的帖子内容保存在本地,只抓取新增的帖子,减少对服务器的调用。
  • 对比抓取时间和帖子修改时间,进行增量智能抓取。

热词分析结果

基于 TF-IDF 算法的关键词抽取,去掉词性过滤
热词:测试, 权重值:0.0836702379797
热词:android, 权重值:0.0479950409822
热词:app, 权重值:0.0471815657113
热词:debug, 权重值:0.0411618487068
热词:appium, 权重值:0.0398277492625
热词:info, 权重值:0.0384611108074
热词:com, 权重值:0.0303914361203
热词:Android, 权重值:0.0293827267844
热词:可以, 权重值:0.0292508277865
热词:java, 权重值:0.0268446839392
热词:name, 权重值:0.0259986696575
热词:import, 权重值:0.0244693361482
热词:adb, 权重值:0.0242090240615
热词:new, 权重值:0.0234931658232
热词:self, 权重值:0.0216709812164
热词:这个, 权重值:0.0214196026667
热词:一个, 权重值:0.0209898720481
热词:使用, 权重值:0.0197788953885
热词:自动化, 权重值:0.0195174856315
热词:driver, 权重值:0.0192305554037
--------------------
基于 TF-IDF 算法的关键词抽取,保留词性过滤
热词:测试, 权重值:0.227021336366
热词:使用, 权重值:0.0536658120182
热词:代码, 权重值:0.0520835606533
热词:需要, 权重值:0.0453997216581
热词:安装, 权重值:0.0442024947666
热词:方法, 权重值:0.0404668070937
热词:文件, 权重值:0.0403178118603
热词:应用, 权重值:0.0385675151521
热词:问题, 权重值:0.0369694154866
热词:脚本, 权重值:0.0367516210092
热词:执行, 权重值:0.0334945017065
热词:运行, 权重值:0.0330216648406
热词:框架, 权重值:0.0320928752846
热词:获取, 权重值:0.0310621419831
热词:工具, 权重值:0.0307212217406
热词:点击, 权重值:0.0301334446062
热词:开发, 权重值:0.0282044731314
热词:分享, 权重值:0.0277156394704
热词:接口, 权重值:0.0275825401536
热词:版本, 权重值:0.0275480668858
--------------------
基于 TextRank 算法的关键词抽取
热词:测试, 权重值:1.0
热词:需要, 权重值:0.304322379879
热词:使用, 权重值:0.279441611144
热词:问题, 权重值:0.249213482979
热词:没有, 权重值:0.224830881329
热词:应用, 权重值:0.197015905226
热词:进行, 权重值:0.18107431231
热词:方法, 权重值:0.179758006911
热词:代码, 权重值:0.176474200864
热词:时候, 权重值:0.170182559205
热词:公司, 权重值:0.161352499742
热词:开发, 权重值:0.160230767219
热词:大家, 权重值:0.157596131126
热词:执行, 权重值:0.152568432357
热词:数据, 权重值:0.149383770984
热词:工作, 权重值:0.144002563268
热词:文件, 权重值:0.142500104314
热词:脚本, 权重值:0.133327635707
热词:时间, 权重值:0.130335982767
热词:工具, 权重值:0.128213384529
分析结束,耗费时间:0:08:14.268000

源代码

github地址