我使用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)
这给了我错误。
答案 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的页面?