Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] Importação da biblioteca Requests

Eu tentei realizar a leitura direto do HTML através do link do wikipédia da seguinte maneira:

url = 'https://pt.wikipedia.org/wiki/Lista_de_países_por_população'
pd.read_html(url)

E recebi o seguinte erro:

ImportError: Missing optional dependency 'html5lib'. Use pip or conda to install html5lib.

Aí eu usei a biblioteca requests para conseguir fazer a leitura direto do link e funcionou:

url = 'https://pt.wikipedia.org/wiki/Lista_de_países_por_população'
response = requests.get(url)
html_content = response.content

dados_populacionais = pd.read_html(html_content)
dados_populacionais[0]

Quando eu olhei a resposta da professora e testei, vi que funcionou direto sem precisar da biblioteca Requests. Pq isso aconteceu? O que há de especial naquele link dado na resposta e como ele foi obtido?

1 resposta
solução!

Oi, João! tudo bem?

Quando copiamos e colamos o link da página no bloco de código ele fica assim:

https://pt.wikipedia.org/wiki/Lista_de_pa%C3%ADses_por_popula%C3%A7%C3%A3o

Pois a URL contém caracteres especiais, como acentos, que são convertidos em uma forma codificada quando inseridos em um bloco de código. Esse processo é conhecido como "URL encoding". Por exemplo, caracteres como ã e ç são convertidos em sequências de caracteres especiais (%C3%A3 e %C3%A7, respectivamente) para garantir que a URL seja interpretada corretamente pelos navegadores e servidores web.

Se você fizer a leitura dessa forma, vai dar certo:

url = 'https://pt.wikipedia.org/wiki/Lista_de_pa%C3%ADses_por_popula%C3%A7%C3%A3o'
pd.read_html(url)[0]

Ao copiar e colar a URL diretamente no bloco de código, essa codificação é aplicada automaticamente. Isso explica por que a URL funciona quando escrita dessa forma no código. Portanto, sempre que encontrar URLs com caracteres especiais, use a versão codificada para garantir que a leitura funcione corretamente.

Já quando você usa a biblioteca requests, ela lida automaticamente com a codificação da URL, incluindo os caracteres especiais. Portanto, mesmo se você fornecer a URL não codificada, o requests irá codificá-la corretamente antes de fazer a solicitação HTTP. É por isso que o código funciona mesmo com os caracteres especiais quando você usa requests.

Espero que isso ajude a esclarecer! Se tiver mais alguma dúvida, sinta-se à vontade para perguntar.

Bons estudos!