' ASCII' beautifulsoup中的编解码器错误

时间:2010-11-16 17:56:24

标签: python beautifulsoup

我使用beautifulsoup从html页面抓取数据。直到昨天一切都很好。但现在我收到了错误:

'ascii' codec can't encode character u'\xa9' in position 86700: ordinal not in range(128)

我正在使用代码:

import urllib2
from BeautifulSoup import BeautifulSoup

page = urllib2.urlopen(url).read()
soup = BeautifulSoup(page)

这给了我错误。

2 个答案:

答案 0 :(得分:2)

疯狂猜测:

尝试指定页面的编码?

soup = BeautifulSoup(page, fromEncoding=<encoding of the page>)

这也可能是Python安装的问题。如果您打印没有BeautifulSoup的非ASCII字符,您是否面临同样的问题?如果是,那么您需要设置编码:

import sys
sys.setdefaultencoding("utf-8") # or whatever you want the default encoding to be.

答案 1 :(得分:0)

黑暗中的野蛮刺:你正在阅读一个没有明确声明编码而又不是7位ASCII的页面?