3
respostas

urllib.error.HTTPError: HTTP Error 404: Not Found

Olá professor, tudo bem ?

Estou obtendo esse retorno quando rodo a aplicação e coloco: http://127.0.0.1:5000/sentimento/nice

urllib.error.HTTPError
urllib.error.HTTPError: HTTP Error 404: Not Found

Traceback (most recent call last)
File "C:\Users\wpuerta\AppData\Local\Programs\Python\Python39\Lib\site-packages\flask\app.py", line 2088, in __call__
return self.wsgi_app(environ, start_response)
File "C:\Users\wpuerta\AppData\Local\Programs\Python\Python39\Lib\site-packages\flask\app.py", line 2073, in wsgi_app
response = self.handle_exception(e)
File "C:\Users\wpuerta\AppData\Local\Programs\Python\Python39\Lib\site-packages\flask\app.py", line 2070, in wsgi_app
response = self.full_dispatch_request()

Ja revisei o algoritmo e não estou identificando o erro.

3 respostas

Oii Wellington, como você está?

Disponibilize o código conosco para que possamos te ajudar de forma direcionada, apenas pelo erro, apesar de indicar que algo não está sendo encontrado, é incerto apontar o qual trecho do seu código está causando isso sem vê-lo. Copie o código e cole aqui para que eu possa te ajudar.

Fico no aguardo.

Abraços!

Oi Nadia, boa noite. Estou com o mesmo erro! Acredito que não esteja mais disponível essa biblioteca. Tá igual ao passado em aula. Segue abaixo meu código:

from flask import Flask
from textblob import TextBlob

app = Flask(__name__)

@app.route('/')
def home():
    return "Minha primeira API."

@app.route('/sentimento/<frase>')
def sentimento(frase):
    tb = TextBlob(frase)
    tb_en = tb.translate(to='en')
    polaridade = tb_en.sentiment.polarity
    return "polaridade: {}".format(polaridade)

app.run(debug=True)

Segue abaixo o erro na chamada:

urllib.error.HTTPError urllib.error.HTTPError: HTTP Error 404: Not Found

Oii Liliane, espero que esteja tudo bem com você.

Obrigada por compartilhar seu código por aqui. Verifiquei que a biblioteca TextBlob sofreu algumas mudanças internas recentes que fizeram com que o recurso de tradução não funcione da mesma forma apresentada no vídeo. Inclusive, há uma discussão no github oficial da biblioteca sobre isso, que se encontra em aberto na data atual.

Como solução alternativa, utilize a biblioteca googletrans para efetuar a tradução e após isso, passe o texto traduzido para a biblioteca TextBlob para a análise de sentimento. Abaixo o passo a passo para fazer isso:

1 - Instale a biblioteca googletrans:

pip install googletrans==3.1.0a0

2 - Adicione a importação desta biblioteca no cabeçalho do arquivo:

from googletrans import Translator

3 - Crie um objeto Translator logo abaixo da criação da variável app:

translator = Translator()

4 - Já no endpoint /'sentimento/<frase>', a primeira coisa que faremos será efetuar a tradução da frase através do método translate e logo após isso, passamos a frase traduzida para a TextBlob:

frase_en = translator.translate(frase, dest='en')
tb_en = TextBlob(frase_en.text)

O código completo modificado ficará da seguinte forma:

from flask import Flask
from textblob import TextBlob
from googletrans import Translator

app = Flask(__name__)
translator = Translator()

@app.route('/')
def home():
    return "Minha primeira API."

@app.route('/sentimento/<frase>')
def sentimento(frase):
    frase_en = translator.translate(frase, dest='en')
    tb_en = TextBlob(frase_en.text)
    polaridade = tb_en.sentiment.polarity
    return "polaridade: {}".format(polaridade)

app.run(debug=True)

Após essas modificações tente executar o código novamente.

Fico à disposição em caso de dúvidas ou eventuais erros no processo.

Grande abraço e bons estudos!