def busca_disponibilidade_sites(sites): """ Percorrendo a lista de sites para verificar a sua disponibilidade. Caso o código de status seja 200 (OK), então ela está disponível para acesso. """ resultados = [] last_exception = "" for row in sites: url, orgao = row.url, row.orgao for tentativa in range(TOTAL_TENTATIVAS): try: if last_exception == "SSLError": resposta = requests.get(url, headers=headers, timeout=60, verify=False) status_code = resposta.status_code else: resposta = requests.get(url, headers=headers, timeout=60) status_code = resposta.status_code print("{} - {} - {}".format(orgao, url, status_code)) last_exception = "" if status_code != STATUS_SUCESSO: dados = cria_dados(url=url, portal=orgao, resposta=status_code) if not settings.debug: preenche_tab_gs(planilha=planilha_google, dados=dados) resultados.append(dados) checar_timelines( twitter_hander=twitter_bot, mastodon_handler=mastodon_bot, url=url, orgao=orgao, ) except requests.exceptions.RequestException as e: print("Tentativa {}:".format(tentativa + 1)) print(e) if e.__class__.__name__ == "SSLError": last_exception = e.__class__.__name__ with open("bases-sem-certificados.txt", "a", encoding="utf-8") as no_certification: no_certification.write("{} - {} - {}\n".format( orgao, url, e)) continue elif tentativa < TOTAL_TENTATIVAS - 1: continue else: with open("bases-com-excecoes.txt", "a", encoding="utf-8") as excecoes: excecoes.write("{} - {} - {}\n".format(orgao, url, e)) break preenche_csv(resultados)
def busca_disponibilidade_sites(sites): """ Percorrendo a lista de sites para verificar a sua disponibilidade. Caso o código de status seja 200 (OK), então ela está disponível para acesso. """ for row in sites: url, arroba, orgao = row.url, row.arroba, row.orgao for tentativa in range(1, TOTAL_TENTATIVAS + 1): try: momento = datetime.datetime.now().isoformat(sep=' ', timespec='seconds') resposta = get(url, timeout=30, headers=headers) dados = cria_dados(url=url, portal=orgao, resposta=resposta.status_code) preenche_csv(arquivo_logs=arq_log, dados=dados) if resposta.status_code == STATUS_SUCESSO: print(f'{momento}; O site {url} funcionou corretamente.') break else: if tentativa == TOTAL_TENTATIVAS: if not settings.debug: preenche_tab_gs(planilha=planilha_google, dados=dados) preenche_csv(arquivo_logs=arq_log, dados=dados) print( f"""{momento}; url: {url}; orgão: {orgao}; resposta: {resposta.status_code}""" ) if not settings.debug: checar_timelines(mastodon_handler=mastodon_bot, url=url, orgao=orgao) except (exceptions.ConnectionError, exceptions.Timeout, exceptions.TooManyRedirects) as e: dados = cria_dados(url=url, portal=orgao, resposta=str(e)) if not settings.debug: preenche_tab_gs(planilha=planilha_google, dados=dados) preenche_csv(arquivo_logs=arq_log, dados=dados) print( f"""{momento}; url: {url}; orgão: {orgao}; resposta:{str(e)}""" ) if not settings.debug: checar_timelines(twitter_hander=twitter_bot, mastodon_handler=mastodon_bot, url=url, orgao=orgao) break