Talvez seja a quantidade de urls vezes o tempo, que pode chegar a 10 segundos entre uma url e outra. É possível que leve menos tempo com random.uniform(0.2, 2), por exemplo. (Ou seja, máximo de 2 segundos entre uma url e outra).
(Fiquei em dúvida no “write csv”… Você está usando pandas ou csv mesmo? Pandas pode tomar tempo consideravelmente maior para escrever csv.)
Fiz um script aqui (não testei pois estou sem ideia de URL de teste) que te retorna número do edital, link e código de status de cada link, e salva tudo isso num csv. O tempo de espera entre uma URL e outra é de 0.2 a 1 segundo.
Veja se funciona. Qualquer erro me chama e conserto o código.
import requests
import csv
URL_BASE = 'https://suaurl.com/'
FAIXA = 90000
with open('lista.csv', 'w') as file:
cols = ['Edital','URL', 'Status']
writer = csv.writer(file, fieldnames=cols, delimiter=',')
writer.writeheader()
for num in range(1, FAIXA+1):
edital = num
url_edital = f'{URL_BASE}{num}'
codigo = requests.get(url_edital).status_code
writer.writerow({'Edital': edital, 'URL': url_edital, 'Status': codigo})
sleep(random.uniform(0.2, 1))
Que legal Rodolfo. Vou testar e depois te falo, mas a dica de diminuir de 10s para 2s acelerou as requisições. Já valeu, mas vou rodar seu código.
Obrigada