如何使用谷歌查询PyPI包下载信息

Analyzing PyPI package downloads - Python Packaging User Guide

下面是英文官网原文,解释了为什么不能获取下载统计信息。

 翻译过后主要有以下几个原因:

1、使用CDN效率低:下载信息是动态变化的。包含在项目中的话,大量缓存会使得降低效率。

2、数据不精准:下载信息不可能准确无误,因为很多原因:

  1. pip的下载缓存
  2. 内部和非官方镜像下载,没法统计
  3. 没有托管在PyPI上的包
  4. 使用脚本不合规增加下载次数
  5. 已知的历史数据质量问问题

3、没有实际的用处:已知的历史数据质量问题

了解了PyPI为什么不显示下载统计信息之后,开始了解如何以及在哪里能找到统计信息。

作为替代,PyPI的下载日志会传输到谷歌查询 (Google BigQuery)。该代替方案中,有1TB的免费查询,之后得使用BigQuery的免费套餐(必须绑定信用卡,并且在免费查询之后就会扣除信用卡钱)才可以继续查询。

使用 Google Cloud 控制台查询公共数据集  |  BigQuery

或者跟着我一起学习如何使用BigQuery:

1、首先你得有一个谷歌账号

2、BigQuery – MindSpore – Google Cloud Console进入该地址

3、点击左上角菜单,点击API

4、搜索BigQuery,并且添加

5、点击探索器,添加按钮

 6、搜索数据源,输入公共数据集或者public data

7、开始查询数据,在快速开始手册中有很多例子,整体还是类似SQL语句,如果有过数据库的学习,应该不在话下

1 #standardSQL
2 SELECT
3   COUNT(*) AS num_downloads
4 FROM
5   `bigquery-public-data.pypi.file_downloads`
6 WHERE
7   file.project = 'pytest' -- Only query the LAST 30 days OF history
8   AND DATE(timestamp) BETWEEN DATE_SUB(CURRENT_DATE(), INTERVAL 30 DAY)
9   AND CURRENT_DATE()

查询下载次数,只需要更改file.project的值,就可以得到想要包30天内的下载次数

8、了解更多

如果想得到除了下载次数之外的细节信息,例如下载系统,下载版本,下载时间,甚至国家编号

可以打开bigquery-public-data数据库,找到pypi,其中有三张表

 就可以查看表中拥有的信息,但是有些细节查询后是为null的。

 如果更改数据表,记得更改查询语句中的FROM字段。

热门相关:重生之男神追妻忙   惹火小辣妻:老公,用力点   功夫圣医   国民女神:重生王牌千金   重生之大文豪