1
resposta

[Sugestão] [ERRO] HTTP Error 403: Forbidden

Olá pessoal, para quem está fazendo o curso de Data Lake na AWS, possivelmente travou na etapa de extração dos dados da DataBoston com o seguinte erro:

[ERRO] HTTP Error 403: Forbidden

Esse erro não está relacionado a problema no código em si, mas sim a uma restrição de acesso imposta pelo próprio site da DataBoston (provavelmente adicionada após o lançamento do curso) para bloquear acessos automatizados genéricos e priorizar acessos feitos por navegadores reais.

Esse tipo de erro é relativamente comum e acontece quando o servidor exige headers HTTP, especialmente o User-Agent, que funciona como uma identificação de quem está fazendo o request. Não só isso, tive que colocar um Accept dentro do header, esse parâmetro informa ao servidor que esperamos receber um arquivo CSV

Esses headers fazem o request se comportar como um acesso legítimo.

Para resolver, basta adaptar o código adicionando um Header, conforme o exemplo abaixo:

import requests


def extract_data(url, filename):
    headers = {
        "User-Agent": "Mozilla/5.0",
        "Accept": "text/csv"
    }

    response = requests.get(url, headers=headers, stream=True)

    if response.status_code == 200: # verifica se o servidor respondeu com sucesso
        with open(filename, "wb") as f: #Cria (ou sobrescreve) um arquivo local 
            for chunk in response.iter_content(chunk_size=8192): # Lê o arquivo em blocos de 8 KB e grava no disco.
                f.write(chunk)
    else:
        print("Erro:", response.status_code)

Espero ter ajudado!

1 resposta

Ei! Tudo bem, Edsson?

Que análise bem precisa do erro e você ainda trouxe uma solução totalmente alinhada com o que realmente está acontecendo. A explicação sobre o uso de headers (User-Agent e Accept) está super clara, com certeza vai ajudar outros(as) colegas estudantes.

Vamos repassar essa observação para o time responsável e agradeço demais por compartilhar e contribuir com a comunidade.

Bons estudos!

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!