我是Python的新手。请帮我解决这个问题。
我想通过以下链接获得收入:
我正在使用以下命令:
导入重新
import urllib.request
数据= urllib.request.urlopen(URL).read()
DATA1 = data.decode(" UTF-8&#34)
问题:
UnicodeDecodeError:' utf-8'编解码器不能将字节0xa0解码到位 10798:无效的起始字节
答案 0 :(得分:0)
请求可能更好:
import requests
url = "https://www.google.co.in/?gfe_r...."
req = requests.get(url)
req.encoding = "utf-8"
data = req.text
答案 1 :(得分:0)
0xa0
或以unicode表示法U + 00A0是字符NO-BREAK SPACE。在UTF8中,它表示为b'\xc2\xa0'
。如果您将其视为原始字节,则可能意味着您的输入不是UTF8编码而是Latin1编码。
快速查看链接页面显示它确实是latin1编码 - 但我有一个法语版本......
当您不确定确切的转换时,规则是使用替换错误处理:
data1=data.decode("utf-8", errors="replace")
然后,所有违规字符都替换为REPLACEMENT CHARACTER(U + FFFD)(显示为 )。如果只找到很少,这意味着页面包含错误的字符,但如果几乎所有非ascii字符被替换,则表示编码不是UTF8。如果西欧语言通常是Latin1,但您的里程可能因其他语言而异。
答案 2 :(得分:0)
下载问题中给出的特定URL的结果是HTML代码。在使用以下Python代码获取数据之后,我能够使用BeautifulSoup来抓取页面:
import requests
url = "https://www.google.co.in/?gfe_rd=cr&ei=kFFsWYyPEqvM8AeF7Y2IDQ&gws_rd=ssl#q=adp+revenue&stick=H4sIAAAAAAAAAOPgE-LUz9U3MMkozijTUskot9JPzs_JSU0uyczP088vSk_My6xKBHGKrYpSy1LzSlMBIRiSrDMAAAA&spf=1500270991898"
response = requests.get(url)
data = response.content.decode('utf-8', errors="replace")
print (data)
请注意我在我的代码示例中使用了Python3。 print()
的语法可能略有不同。