数据分析实战丨基于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大数据的的电商用户行为分析系统
本系统基于Django、Scrapy与Hadoop技术,构建电商用户行为分析平台。通过爬取与处理海量用户数据,实现行为追踪、偏好分析与个性化推荐,助力企业提升营销精准度与用户体验,推动电商智能化发展。
|
6月前
|
缓存 监控 算法
唯品会item_search - 按关键字搜索 VIP 商品接口深度分析及 Python 实现
唯品会item_search接口支持通过关键词、分类、价格等条件检索商品,广泛应用于电商数据分析、竞品监控与市场调研。结合Python可实现搜索、分析、可视化及数据导出,助力精准决策。
|
5月前
|
机器学习/深度学习 大数据 关系型数据库
基于python大数据的台风灾害分析及预测系统
针对台风灾害预警滞后、精度不足等问题,本研究基于Python与大数据技术,构建多源数据融合的台风预测系统。利用机器学习提升路径与强度预测准确率,结合Django框架实现动态可视化与实时预警,为防灾决策提供科学支持,显著提高应急响应效率,具有重要社会经济价值。
|
5月前
|
数据可视化 大数据 关系型数据库
基于python大数据技术的医疗数据分析与研究
在数字化时代,医疗数据呈爆炸式增长,涵盖患者信息、检查指标、生活方式等。大数据技术助力疾病预测、资源优化与智慧医疗发展,结合Python、MySQL与B/S架构,推动医疗系统高效实现。
|
5月前
|
机器学习/深度学习 大数据 关系型数据库
基于python大数据的青少年网络使用情况分析及预测系统
本研究基于Python大数据技术,构建青少年网络行为分析系统,旨在破解现有防沉迷模式下用户画像模糊、预警滞后等难题。通过整合多平台亿级数据,运用机器学习实现精准行为预测与实时干预,推动数字治理向“数据驱动”转型,为家庭、学校及政府提供科学决策支持,助力青少年健康上网。
|
6月前
|
缓存 监控 算法
苏宁item_get - 获得商品详情接口深度# 深度分析及 Python 实现
苏宁易购item_get接口可实时获取商品价格、库存、促销等详情,支持电商数据分析与竞品监控。需认证接入,遵守调用限制,适用于价格监控、销售分析等场景,助力精准营销决策。(238字)
|
6月前
|
监控 算法 数据安全/隐私保护
唯品会 item_get - 获得 VIP 商品详情接口深度分析及 Python 实现
唯品会item_get接口通过商品ID获取商品详情,支持价格、库存、促销等数据抓取,适用于电商分析、竞品监控与价格追踪,结合Python实现可高效完成数据获取、分析与可视化,助力精准营销决策。
|
6月前
|
JSON 缓存 供应链
电子元件 item_search - 按关键字搜索商品接口深度分析及 Python 实现
本文深入解析电子元件item_search接口的设计逻辑与Python实现,涵盖参数化筛选、技术指标匹配、供应链属性过滤及替代型号推荐等核心功能,助力高效精准的电子元器件搜索与采购决策。

推荐镜像

更多