<ul>
<li>此功能取决于环境。
<ul>
<li>原始代码在python控制台中打印字符,而不是在JupyterLab中</李>
<li>正如<a href="https://stackoverflow.com/users/12787236/henrique-branco">Henrique Branco</a>所指出的,在VS代码中,这是<code>Console</code>或<code>Terminal</code>输出之间的差异</李>
</ul>
</li>
<li>将<code>r.text</code>更改为<code>r.content.decode('utf-8')</code></li>
<li>或者,正如<a href="https://stackoverflow.com/users/5987/mark-ransom">Mark Ransom</a>所评论的,<code>repr(x.text)</code>也可以工作</李>
<li>不同之处在于,打印时<code>soup</code>对象中的所有内容都被解码,而输出<code>str</code>则被解码</李>
</ul>
<pre class="lang-py prettyprint-override"><code>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, Jair Bolsonaro, durante a Apresentação de Projeto da Ponte sobre o Rio Pariquera-Açu - Pariquera-Açu/SP
-
Discurso do Presidente da República, Jair Bolsonaro, durante entrega do Discóbolo de Ouro - Palácio do Planalto
-
Discurso do Presidente da República, Jair Bolsonaro, durante a Homenagem póstuma ao músico Pinto do Acordeon - Brasilia/DF
-
Discurso do Presidente da República, Jair Bolsonaro, durante o Lançamento do Programa Norte Conectado - Palácio do Planalto
-
Discurso do Presidente da República, Jair Bolsonaro, durante a Solenidade de inauguração da Usina de Energia Fotovoltaica - Caldas Novas/GO
</code></pre>
<h2>环境/软件包</h2>
<pre><code>jupyterlab 2.2.6
Windows 10
beautifulsoup4 4.9.1
requests 2.24.0
python 3.8.5
</code></pre>