gpt4 book ai didi

Python:beautifulsoup 的输出编码错误

转载 作者:行者123 更新时间:2023-11-28 19:24:18 31 4
gpt4 key购买 nike

当响应放入 beautifulsoup 时,我遇到了编码问题。响应的可读输出以适当的方式格式化,如 Artikelstandort: Österreich ,但在运行 beautifulsoup 后,它将转换为 Artikelstandort: Österreich .我将为您提供更改后的代码:

def formTest (browser, formUrl, cardName, edition):
browser.open (formUrl)

data = browser.response().read()
with open ('analyze.txt', 'wb') as textFile:
print 'wrinting file'
textFile.write (data)

#BS4 -> need from_encoding
soup = BeautifulSoup (data, from_encoding = 'latin-1')
soup = soup.encode ('latin-1').decode('utf-8')
table = soup.find('table', { "class" : "MKMTable specimenTable"})

data 有正确的数据,但是 soup 有错误的编码。我在 soup 上尝试了各种编码/解码,但没有得到任何工作结果。

我从中提取数据的页面是:https://www.magickartenmarkt.de/Mutilate_Magic_2013.c1p256992.prod

编辑:我按照建议使用 prettify 更改了编码,但现在我面临以下错误:

TypeError: slice indices must be integers or None or have an __index__ method

美化改变了什么?我绘制了新的输出,表格仍在“soup”(<table class="MKMTable specimenTable">)

编辑2:

新错误是:

地址:soup.encode ('latin-1').decode('utf-8')

错误:UnicodeDecodeError: 'utf8' codec can't decode byte 0xfc in position 518: invalid start byte

如果我使用编码和解码,解码其他字节时会出现错误。

最佳答案

你现在可能不需要解决方案,但如果有人路过这里,你应该做的是:
您可能应该在 data 而不是 soup 上使用编码程序。
我通常做的是使用 requests 库获取原始响应,然后使用 'response.text' 之类的语法获取文本内容,然后使用 强制编码response.encoding='utf-8'.
至少,我将 response.text 提供给 BeautifulSoup()

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

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