我对Python很陌生,请帮我解决这个问题。
我试图从下面的链接中获得收入:
https://www.google.co.in/?gfe_rd=cr&ei=kFFsWYyPEqvM8AeF7Y2IDQ&gws_rd=ssl#q=adp+revenue&stick=H4sIAAAAAAAAAOPgE-LUz9U3MMkozijTUskot9JPzs_JSU0uyczP088vSk_My6xKBHGKrYpSy1LzSlMBIRiSrDMAAAA&spf=1500270991898
我使用以下命令:
导入re
导入urllib.request
data=urllib.request.urlopen(url.read()
data1=data.decode(“utf-8”)
问题:
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xa0 in position
10798: invalid start byte
Tags:
下载问题中给出的特定URL的结果是HTML代码。在使用以下Python代码获取数据之后,我可以使用BeautifulSoup来刮页:
请注意,我在代码示例中使用了Python3。
print()
的语法可能略有不同。0xa0
或unicode表示法中的U+00A0是字符不间断空格。在UTF8中,它表示为b'\xc2\xa0'
。如果您发现它是一个原始字节,这可能意味着您的输入不是UTF8编码,而是Latin1编码。在链接页面上快速查看显示它确实是拉丁语编码的-但我得到了一个法语版本。。。
不确定确切转换时的规则是使用替换错误处理:
然后,所有有问题的字符都被替换字符(U+FFFD)替换(显示为)。如果只找到很少的字符,则表示页面包含错误字符,但如果几乎所有非ascii字符都被替换,则表示编码不是UTF8。对于西欧语言来说,If通常是拉丁语,但对于其他语言,您的里程数可能会有所不同。
如果有要求的话,也许更好:
相关问题 更多 >
编程相关推荐