数据分析实战丨基于pygal与requests分析GitHub最受欢迎的Python库

简介: 数据分析实战丨基于pygal与requests分析GitHub最受欢迎的Python库

写在前面

本期内容: 基于pygal与requests分析GitHub最受欢迎的30个Python库

实验环境:

  • python
  • requests
  • pygal

实验目标

在现实的应用中,我们经常会使用爬虫分析网络数据,本期博主将用pygal+requests简单对github最受欢迎的30个python库做可视化分析(以stars数量进行排序)。

实验内容

1.配置实验环境

在正式开始之前,我们需要先安装本次实验用到的依赖库:


requests:一个Python第三方库,用于发送HTTP请求,并且提供了简洁而友好的API。它支持各种HTTP方法,并具有自动化的内容解码、会话管理、文件上传下载等功能,是进行Web开发和网络爬虫的常用工具。


pygal:一个开源的Python图表库,用于制作统计图表和可视化数据。它支持多种图表类型,包括折线图、柱状图、饼图等,并且具有丰富的样式和可定制性。通过pygal,用户可以轻松地创建漂亮、交互式的图表,用于数据分析和展示。

安装命令:

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple requests
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pygal

2.GitHub知识点

GitHub官方提供了一个JSON网页,其中存储了按照某个标准排列的项目信息,我们可以通过以下网址查看关键字是python且按照stars数量排列的项目信息:

https://api.github.com/search/repositories?q=language:python&sort=stars

这个网址的JSON数据中,items保存了前30名stars最多的Python项目信息。

重点关注以下信息:

其中:

  • name:表示库名称
  • ogin:表示库的拥有者
  • html_url:表示库的网址
  • stargazers_count:该库被star的数量

3.爬取重要信息

我们先尝试着简单爬取一下本次实验所需要的几个重要信息

程序设计

"""
作者:Want595
微信号:Want_595
公众号:Want595
"""
import requests

url = 'https://api.github.com/search/repositories?q=language:python&sort=stars'
reponse = requests.get(url)
print(reponse.status_code, "响应成功!")
response_dict = reponse.json()
total_repo = response_dict['total_count']
repo_list = response_dict['items']
print("总仓库数:", total_repo)
print('top:', len(repo_list))
for repo_dict in repo_list:
    print('\n名字:', repo_dict['name'])
    print('作者:', repo_dict['owner']['login'])
    print('Stars:', repo_dict['stargazers_count'])
    print('网址:', repo_dict['html_url'])
    print('简介:', repo_dict['description'])

程序分析


该代码使用Python的requests模块来访问GitHub的API,并搜索使用Python语言的仓库,并按照stars数量进行排序。代码首先发送GET请求,然后将响应转换为JSON格式。接着打印总仓库数和top仓库数。然后遍历仓库列表,并打印每个仓库的名称、作者、stars数量、网址和简介。这段代码的作用是获取GitHub上使用Python语言的仓库中的一些基本信息,并打印出来。

运行结果

4.可视化分析

程序设计

"""
作者:Want595
微信号:Want_595
公众号:Want595
"""
import requests
import pygal
from pygal.style import LightColorizedStyle, LightenStyle

url = 'https://api.github.com/search/repositories?q=language:python&sort=stars'
reponse = requests.get(url)
print(reponse.status_code, "响应成功!")
response_dict = reponse.json()
total_repo = response_dict['total_count']
repo_list = response_dict['items']
print("总仓库数:", total_repo)
print('top:', len(repo_list))

names, plot_dicts = [], []

……具体代码请下载后查看哦

程序分析

该程序使用了requests库向GitHub的API发送请求,获取了Python语言的仓库列表,并对返回的数据进行处理和分析。

具体的程序分析如下:

  1. 导入需要使用的库:requests、pygal以及相关的样式库。
  2. 设置GitHub的API请求URL,其中指定了查询语言为Python,并按照星标数(即stars)排序。
  3. 发送GET请求,并获取返回的响应对
  4. 打印响应状态码,用于验证请求是否成功。
  5. 将响应对象的JSON数据转换为字典形式。
  6. 获取仓库的总数和仓库列表。
  7. 打印总仓库数和仓库列表长度。
  8. 初始化用于绘图的变量:names(存储仓库名称)、plot_dicts(存储每个仓库的相关信息)。
  9. 遍历仓库列表,分别获取仓库名称、仓库的星标数、仓库的描述和仓库的URL,并将相关信息添加到对应的变量中。
  10. 初始化绘图的样式和配置。
  11. 创建柱状图对象,并设置标题、横坐标、数据等属性。
  12. 将数据添加到柱状图中。
  13. 将柱状图渲染为SVG文件。

最终的结果是生成了一个包含前30名最受欢迎的Python库的柱状图,并将图表保存为SVG文件。

运行结果

写在后面

我是一只有趣的兔子,感谢你的喜欢!

目录
相关文章
|
5天前
|
机器学习/深度学习 数据可视化 数据挖掘
使用Python实现基于矩阵分解的长期事件(MFLEs)时间序列分析
在现代数据分析中,高维时间序列数据的处理和预测极具挑战性。基于矩阵分解的长期事件(MFLEs)分析技术应运而生,通过降维和时间序列特性结合,有效应对大规模数据。MFLE利用矩阵分解提取潜在特征,降低计算复杂度,过滤噪声,并发现主要模式。相比传统方法如ARIMA和深度学习模型如LSTM,MFLE在多变量处理、计算效率和可解释性上更具优势。通过合理应用MFLE,可在物联网、金融等领域获得良好分析效果。
23 0
使用Python实现基于矩阵分解的长期事件(MFLEs)时间序列分析
|
2天前
|
测试技术 数据库 Python
Python装饰器实战:打造高效性能计时工具
在数据分析中,处理大规模数据时,分析代码性能至关重要。本文介绍如何使用Python装饰器实现性能计时工具,在不改变现有代码的基础上,方便快速地测试函数执行时间。该方法具有侵入性小、复用性强、灵活度高等优点,有助于快速发现性能瓶颈并优化代码。通过设置循环次数参数,可以更准确地评估函数的平均执行时间,提升开发效率。
72 61
Python装饰器实战:打造高效性能计时工具
|
8天前
|
数据可视化 算法 数据挖掘
Python时间序列分析工具Aeon使用指南
**Aeon** 是一个遵循 scikit-learn API 风格的开源 Python 库,专注于时间序列处理。它提供了分类、回归、聚类、预测建模和数据预处理等功能模块,支持多种算法和自定义距离度量。Aeon 活跃开发并持续更新至2024年,与 pandas 1.4.0 版本兼容,内置可视化工具,适合数据探索和基础分析任务。尽管在高级功能和性能优化方面有提升空间,但其简洁的 API 和完整的基础功能使其成为时间序列分析的有效工具。
60 37
Python时间序列分析工具Aeon使用指南
|
3天前
|
机器学习/深度学习 运维 数据可视化
Python时间序列分析:使用TSFresh进行自动化特征提取
TSFresh 是一个专门用于时间序列数据特征自动提取的框架,支持分类、回归和异常检测等机器学习任务。它通过自动化特征工程流程,处理数百个统计特征(如均值、方差、自相关性等),并通过假设检验筛选显著特征,提升分析效率。TSFresh 支持单变量和多变量时间序列数据,能够与 scikit-learn 等库无缝集成,适用于大规模时间序列数据的特征提取与模型训练。其工作流程包括数据格式转换、特征提取和选择,并提供可视化工具帮助理解特征分布及与目标变量的关系。
36 16
Python时间序列分析:使用TSFresh进行自动化特征提取
|
2天前
|
数据采集 缓存 API
python爬取Boss直聘,分析北京招聘市场
本文介绍了如何使用Python爬虫技术从Boss直聘平台上获取深圳地区的招聘数据,并进行数据分析,以帮助求职者更好地了解市场动态和职位需求。
|
1月前
|
机器学习/深度学习 数据采集 数据挖掘
使用Python实现智能食品消费市场分析的深度学习模型
使用Python实现智能食品消费市场分析的深度学习模型
128 36
|
1月前
|
数据可视化 算法 数据挖掘
Python量化投资实践:基于蒙特卡洛模拟的投资组合风险建模与分析
蒙特卡洛模拟是一种利用重复随机抽样解决确定性问题的计算方法,广泛应用于金融领域的不确定性建模和风险评估。本文介绍如何使用Python和EODHD API获取历史交易数据,通过模拟生成未来价格路径,分析投资风险与收益,包括VaR和CVaR计算,以辅助投资者制定合理决策。
80 15
|
1月前
|
分布式计算 DataWorks Serverless
通过函数计算节点实现GitHub实时数据分析与结果发送
开发人员在基于GitHub开源项目进行开发时会产生海量事件,GitHub会记录每次事件的类型、详情、开发者和代码仓库等信息,并开放其中的公开事件。DataWorks提供“Github十大热门编程语言”模板,通过对GitHub中公开数据集进行加工和分析,并将分析结果以邮箱的方式发送给指定用户。运行本案例后,您将得到Github中Top10编程语言每小时被提交的次数与排行。
65 10
|
1月前
|
机器学习/深度学习 数据采集 数据挖掘
使用Python实现智能食品消费趋势分析的深度学习模型
使用Python实现智能食品消费趋势分析的深度学习模型
126 18
|
1月前
|
JSON 数据可视化 测试技术
python+requests接口自动化框架的实现
通过以上步骤,我们构建了一个基本的Python+Requests接口自动化测试框架。这个框架具有良好的扩展性,可以根据实际需求进行功能扩展和优化。它不仅能提高测试效率,还能保证接口的稳定性和可靠性,为软件质量提供有力保障。
65 7

热门文章

最新文章