上个月我为this拉丁字典做了一个刮刀。它最终完成了执行(那个网站给了我每页6到8秒的响应时间)。糟糕的是,我发现我的大量数据严重受损……
例如命令ū相关--->;命令\xc5\xabcor | |命令ūcāris--->;命令\xc5\xabc\xc4\x81ris
我犯了一个愚蠢的错误,对从请求中获得的原始数据使用str()函数。就像这样:
import requests
r = requests.get("https://www.dizionario-latino.com/dizionario-latino-
flessione.php?lemma=COMMANDUCOR100", verify = False)
out = str(r.content)
with open("test.html", 'w') as file:
file.write(out)
如果有人能帮我恢复这段残缺的文字,我将不胜感激。 提前谢谢
r.content
返回bytes
(相反,^{requests
模块尝试根据HTTP头猜测正确的解码,并使用该编码为您解码字节。在将来,也许这就是你想用的)如果
r.content
包含bytes
如b'command\xc5\xabcor'
,则str(r.content)
返回一个str
,以字符b'
开始,以文字'
结束可以使用^{} 恢复字节:
然后您可以将这些
bytes
解码为str
。您发布的URL声明内容是UTF-8编码的:假设您下载的所有数据都使用相同的编码,您可以通过调用
bytes.decode('utf-8')
方法将内容恢复为str:只需使用} 它们。您可以在Python的Unicode howto中阅读更多关于字符编码的内容
utf-8
(默认值)来^{相关问题 更多 >
编程相关推荐