当前位置:   article > 正文

【第7篇】Python爬虫实战-收集gitee中的issue问题_收集issue

收集issue

为了了解大家在使用开源项目过程遇到最多的问题是什么?

这里通过收集gitee中的issue中已完成的数据,进行分析,并生成词云图

一、页面结构分析

二、编写程序代码

三、运行程序结果

四、词云图生成


一、页面结构分析

我们可以通过获取到网页源码,然后利用xpath进行解析,要让程序完整的执行下去,我们需要做翻页处理,这里方式有很多,我是采用的判断页面中是否有下一页的图标,如果有,就当前加+1,最终可以做到,将所有需要收集的信息提取到txt文件中,采集完成之后,通过txt文件生成词云图。

二、编写程序代码

  1. #!/usr/bin/python
  2. # -*- coding: UTF-8 -*-
  3. """
  4. @author: Roc-xb
  5. """
  6. import requests
  7. from lxml import etree
  8. def run(page=1):
  9. headers = {
  10. 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36'
  11. }
  12. params = (
  13. ('assignee_id', ''),
  14. ('author_id', ''),
  15. ('branch', ''),
  16. ('collaborator_ids', ''),
  17. ('issue_search', ''),
  18. ('label_ids', ''),
  19. ('label_text', ''),
  20. ('milestone_id', ''),
  21. ('priority', ''),
  22. ('private_issue', ''),
  23. ('program_id', ''),
  24. ('project_type', ''),
  25. ('scope', ''),
  26. ('sort', ''),
  27. ('state', 'closed'),
  28. ('target_project', ''),
  29. ('page', page),
  30. )
  31. response = requests.get('https://gitee.com/y_project/RuoYi/issues', headers=headers, params=params).text
  32. dom = etree.HTML(response)
  33. res = dom.xpath('//*[@id="git-issues"]/div/div/div[1]/h3/a/text()')
  34. print("".join(res))
  35. with open("issus.txt", 'a', encoding="utf-8") as f:
  36. f.writelines(res)
  37. next_page = str(dom.xpath('//*[@id="git-discover-page"]/a[@rel="next"]//text()'))
  38. if len(next_page) > 1:
  39. run(page + 1)
  40. if __name__ == '__main__':
  41. run()

三、运行程序结果

四、词云图生成

  1. #!/usr/bin/python
  2. # -*- coding: UTF-8 -*-
  3. """
  4. @author: Roc-xb
  5. """
  6. from wordcloud import WordCloud
  7. import matplotlib.pyplot as plt # 绘制图像的模块
  8. import jieba # jieba分词
  9. f = open('issus.txt', 'r', encoding='UTF-8').read()
  10. # 结巴分词,生成字符串,wordcloud无法直接生成正确的中文词云
  11. cut_text = " ".join(jieba.cut(f))
  12. wordcloud = WordCloud(
  13. # 设置字体,不然会出现口字乱码,文字的路径是电脑的字体一般路径,可以换成别的
  14. font_path="C:/Windows/Fonts/simfang.ttf",
  15. # 设置了背景,宽高
  16. background_color="white", width=1500, height=880).generate(cut_text)
  17. plt.imshow(wordcloud, interpolation="bilinear")
  18. plt.axis("off")
  19. plt.show()

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/674942
推荐阅读
相关标签
  

闽ICP备14008679号