UnicodeDecodeError Python E

2024-05-29 06:02:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试编写一个python google api。遇到一些unicode问题。到目前为止,我最基本的PoC是:

#!/usr/bin/env python
import urllib2
from bs4 import BeautifulSoup        
query = "filetype%3Apdf"
url = "http://www.google.com/search?sclient=psy-ab&hl=en&site=&source=hp&q="+query+"&btnG=Search"
opener = urllib2.build_opener()
opener.addheaders = [('User-agent', 'Mozilla/5.0')]
response = opener.open(url)
data = response.read()
data = data.decode('UTF-8', 'ignore')
data = data.encode('UTF-8', 'ignore')
soup = BeautifulSoup(data)
print u""+soup.prettify('UTF-8')

我的回溯是:

^{pr2}$

有什么想法吗?在


Tags: importapiurldataresponsegoogleunicodeopener
1条回答
网友
1楼 · 发布于 2024-05-29 06:02:22

您正在将soup树转换为UTF-8(一个编码的字节字符串),然后尝试将其连接到一个空的u''unicode字符串。在

Python将自动尝试并使用默认编码(即ASCII)对编码的字节字符串进行解码,但无法解码UTF-8数据。在

您需要显式解码prettify()输出:

print u"" + soup.prettify('UTF-8').decode('UTF-8')

Python Unicode HOWTO更好地解释了这一点,包括关于默认编码的说明。我真的,真的建议你也读乔尔斯波尔斯基的article on Unicode。在

相关问题 更多 >

    热门问题