如何解决如何从bs4汤对象中解码utf-8文本?
我正在从this website中提取所有标题和网址,但即使在检查了编码utf-8的请求后,也会用一些符号代替重音符号。
这是我的代码:
from bs4 import BeautifulSoup
import requests
url = "https://www.gov.br/planalto/pt-br/acompanhe-o-planalto/discursos"
r = requests.get(url)
print(f"The encoding is {r.encoding}")
soup = BeautifulSoup(r.text,'html.parser')
lista_de_discursos = soup.find_all(name="a",attrs={"class": "summary"})
for x in lista_de_discursos:
print(x.text)
print("---")
The encoding is utf-8
discurso do Presidente da Rep�blica,Jair Bolsonaro,durante a apresenta��o do Projeto da Ponte de acesso ao Bairro Boa Esperan�a e ao quilombo S�o Pedro - Eldorado/SP
---
discurso do Presidente da Rep�blica,durante a Apresenta��o de Projeto da Ponte sobre o Rio Pariquera-A�u - Pariquera-A�u/SP
---
discurso do Presidente da Rep�blica,durante entrega do disc�bolo de Ouro - Pal�cio do Planalto
如何获取República
和apresentação
而不是Rep�blica
和apresenta��o
。
换句话说,如何在输出中将编码设置为UTF-8?
解决方法
- 此功能取决于环境。
- 原始代码可以在python控制台中打印字符,而不会在JupyterLab中打印。
- 如Henrique Branco所述,在VS Code中,它是
Console
或Terminal
输出之间的差异。
- 将
r.text
更改为r.content.decode('utf-8')
- 或者,Mark Ransom评论说,
repr(x.text)
也可以。 - 与众不同的是,与
soup
对象中的所有内容相比,在打印时,其输出都只是输出str
。
url = "https://www.gov.br/planalto/pt-br/acompanhe-o-planalto/discursos"
r = requests.get(url)
print(f"The encoding is {r.encoding}")
soup = BeautifulSoup(r.content.decode('utf-8'),'html.parser')
lista_de_discursos = soup.find_all(name="a",attrs={"class": "summary"})
for x in lista_de_discursos:
print(x.text)
print("---")
[out]:
The encoding is utf-8
Discurso do Presidente da República,Jair Bolsonaro,durante a apresentação do Projeto da Ponte de acesso ao Bairro Boa Esperança e ao Quilombo São Pedro - Eldorado/SP
---
Discurso do Presidente da República,durante a Apresentação de Projeto da Ponte sobre o Rio Pariquera-Açu - Pariquera-Açu/SP
---
Discurso do Presidente da República,durante entrega do Discóbolo de Ouro - Palácio do Planalto
---
Discurso do Presidente da República,durante a Homenagem póstuma ao músico Pinto do Acordeon - Brasilia/DF
---
Discurso do Presidente da República,durante o Lançamento do Programa Norte Conectado - Palácio do Planalto
---
Discurso do Presidente da República,durante a Solenidade de inauguração da Usina de Energia Fotovoltaica - Caldas Novas/GO
环境/包装
jupyterlab 2.2.6
Windows 10
beautifulsoup4 4.9.1
requests 2.24.0
python 3.8.5
,
这听起来很怪异,但之所以这样打印是因为我正在使用VS Code的输出。行为奇怪,但问题解决了。
VS代码中的输出
VS代码中的终端
问题一解决,我就会认为这个问题已经回答!
谢谢!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。