gpt4 book ai didi

Python输出编码

转载 作者:太空宇宙 更新时间:2023-11-04 08:33:37 24 4
gpt4 key购买 nike

代码如下。在 Debian 9 中使用 python 2 运行。

# -*- coding: utf-8 -*- 
import requests
import bs4

# repairing invalid HTML
s = requests.get('http://vstup.info/2017/i2017i483.html')
tmp = s.text.replace("</td></tr></td></tr><tr><td>", "</td></tr><tr><td>")

bs = bs4.BeautifulSoup(tmp, "html.parser")

content = bs.find("div", {"id": "okrArea"}).find("table", {"id": "about"}).findAll("tr")

typ = content[1].findAll("td")[1].get_text() #ZVO type

print typ
print [typ]

它输出这个:

ТеÑ
нÑкÑм (ÑÑилиÑе)
[u'\xd0\xa2\xd0\xb5\xd1\x85\xd0\xbd\xd1\x96\xd0\xba\xd1\x83\xd0\xbc (\xd1\x83\xd1\x87\xd0\xb8\xd0\xbb\xd0\xb8\xd1\x89\xd0\xb5)']
  1. 为什么变量打印输出与列表中的这个变量不同?
  2. 如何从网页获取正确的值

Технікум (училище)

在交互式python中,它可以通过这种方式从反斜杠代码中获取

>>> print '\xd0\xa2\xd0\xb5\xd1\x85\xd0\xbd\xd1\x96\xd0\xba\xd1\x83\xd0\xbc (\xd1\x83\xd1\x87\xd0\xb8\xd0\xbb\xd0\xb8\xd1\x89\xd0\xb5)'.decode('utf8')
Технікум (училище)

最佳答案

您错误地信任服务器设置的 HTTP 内容字符集,使用 response.text .这为您提供了使用 header 信息从二进制响应数据解码的 Unicode 文本,这是错误的。然后,您将 Unicode 字符串提供给 BeautifulSoup,它假定它已被正确解码。

相反,使用 response.content属性,它为您提供原始二进制字符串内容正文:

tmp = s.conent.replace("</td></tr></td></tr><tr><td>", "</td></tr><tr><td>")

现在数据仍然是一个二进制字符串,BeautifulSoup 将根据 HTML 文档本身中的信息(有一个带有正确编解码器信息的 <meta> 标签)为您解码:

>>> import requests, bs4
>>> s = requests.get('http://vstup.info/2017/i2017i483.html')
>>> tmp = s.content.replace("</td></tr></td></tr><tr><td>", "</td></tr><tr><td>")
>>> bs = bs4.BeautifulSoup(tmp, "html.parser")
>>> content = bs.select("div#okrArea table#about tr")
>>> typ = content[1].findAll("td")[1].get_text()
>>> print typ
Технікум (училище)

关于Python输出编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51004427/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com