我一直在修改以下脚本:
# -*- coding: utf8 -*-
import codecs
from BeautifulSoup import BeautifulSoup, NavigableString,
UnicodeDammit
import urllib2,sys
import time
try:
import timeoutsocket # http://www.timo-tasi.org/python/timeoutsocket.py
timeoutsocket.setDefaultSocketTimeout(10)
except ImportError:
pass
h=u'\u3000\u3000\u4fe1\u606f\u901a\u4fe1\u6280\u672f'
address=urllib2.urlopen('http://stock.eastmoney.com/news/1408,20101022101395594.html').read()
soup=BeautifulSoup(address)
p=soup.findAll('p')
t=p[2].string[:10]
具有以下输出:
打印
¡¡¡¡¡
打印 h
信息通</p>
吨
你'\xa1\xa1\xa1\xa1\xd0\xc5\xcf\xa2\xcd\xa8'
H
u'\u3000\u3000\u4fe1\u606f\u901a'
h.encode('gbk')
'\xa1\xa1\xa1\xa1\xd0\xc5\xcf\xa2\xcd\xa8'
简单的说:当我通过BeautifulSoup传入这个html时,它取gbk编码的文本,认为是unicode,不识别需要先解码。但是,“h”和“t”应该是相同的,因为 h 只是我从 html 文件中获取文本并手动转换它。
我该如何解决这个问题?
最好的
惠顿