Olá, pessoal, tudo bem com vocês? Gostaria de deixar minha contribuição para o desafio do módulo 02, onde é solicitado a extração do total de seguidores do usuário, o que envolve a paginação da API.
No meu código, eu fiz algumas alterações, sendo uma delas o fato de eu ter alterado o parâmetro per_page para 100, o que permite enviar menos requisições para a API.
Além disso, não usei o append para adicionar a lista de usuários à followers_list, e sim o método extend. Dessa forma, é possível contar o total de seguidores, pois a followers_list será uma lista de dicionários, onde cada item representa os dados de um seguidor.
Espero que minha contribuição seja útil principalmente para aqueles que estão dando os primeiros passos na programação em Python. Também, gostaria de pedir aos demais alunos e instrutores que avaliem como a minha solução, citando e corrigindo qualquer erro que exista, pois apesar de ter uma boa experiência com Python, sempre há espaço para melhorias.
import requests
access_token = "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"
headers = {'Authorization': 'Bearer ' + access_token,
'X-GitHub-Api-Version': '2022-11-28'}
params = {
"per_page" : 100,
}
username = 'amzn'
url = f"https://api.github.com/users/{username}/followers"
# Iniciando a paginação
followers_list = []
page_num = 1
while True:
url_page = f'{url}?page={page_num}'
response = requests.get(url_page, headers=headers, params=params)
followers = response.json()
# Condição para encerrar o loop
if len(followers) == 0:
# Imprimir o total de páginas removendo a última págiba, que estará sempre vazia
print(f"Total pages = {page_num - 1}")
break
# Acrescenta, individualmente, cada dicionário presente na página atual
followers_list.extend(followers)
print(f"url => {url_page}")
page_num += 1
# Verificando a quantidade de seguidores
print(f"{username} has {len(followers_list)} followers ")