Github API, получите самые популярные публичные репозитории, написанные на языке Python - PullRequest
0 голосов
/ 30 ноября 2018

Я экспериментирую с Python.Чего я хотел бы достичь, так это с помощью API Github, я хотел бы получить 10 самых популярных общедоступных репозиториев, написанных на языке Python и созданных с прошлого месяца.Может ли кто-нибудь дать мне советы о том, как мне этого добиться?

До сих пор мне удавалось добиться следующего:

import pandas as pd
import requests 
from datetime import datetime
df = pd.DataFrame(columns=['repository_ID', 'name', 'URL', 'created_date',  'description', 'number_of_stars'])
results = requests.get('https://api.github.com/search/repositories?q=language:python&sort=stars&order=desc').json()

for repo in results['items']:
        d_tmp = {'repository_ID': repo['id'],
                'name': repo['name'],
                'URL': repo['html_url'],
                'created_date': datetime.strptime(repo['created_at'], '%Y-%m-%dT%H:%M:%SZ'),


                'number_of_stars': repo['stargazers_count']}
        df = df.append(d_tmp, ignore_index=True)


print d_tmp

Это дает мне следующий результат для самых просматриваемых, отсортированных по звездочкепо убыванию:

{'URL': u'https://github.com/faif/python-patterns', 'repository_ID': 4578002, 'number_of_stars': 18103, 'name': u'python-patterns', 'created_date': datetime.datetime(2012, 6, 6, 21, 2, 35)}

На чем я застрял: Как получить тот же результат за последние два месяца и для 10 лучших репозиториев? Я благодарен за всю ценную информацию.

1 Ответ

0 голосов
/ 01 декабря 2018

Вы можете использовать параметр created в github api.Таким образом, чтобы получить репозитории Python с 9-го месяца, отсортированные по звездам, вы можете выполнить следующий запрос:

https://api.github.com/search/repositories?q=created:">2018-09-30"language:python&sort=stars&order=desc

Затем, чтобы получить топ-10 репо, вы можете сделать:

top_ten = results['items'][0:10]

Если выЕсли вы хотите ограничить количество элементов, возвращаемых при вызове API, вы можете использовать параметр per_page=10.Приведенный ниже запрос выполняет те же действия, что и выше, но возвращает только 10 результатов.

https://api.github.com/search/repositories?q=created:">2018-09-30"language:python&sort=stars&order=desc&per_page=10

Удачи в ваших проектах!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...