|
为了使用urllib2.urlopen()打开网页。
可是参数url却是从数据库中读取出来的(unicode编码)于是得编解码一下:
[php]
url = unicode(url).encode("utf8")[/php]
为了把页面的内容通过正则式解析出来,于是有
[php]
reg = r'关键点:(.*)'[/php]
又为了把解析出来的内容传递给其他的模块使用,于是要把编码变为unicode。所以我干脆把整个网页的内容都编解码一次:
[php]
page = urllib2.urlopen(url).decode("utf8")[/php]
可是,这时候reg却依然是utf8编码(代码文件的编码),于是造成不能解析。。。唯一的办法只能是对正则式进行解码:
[php]
reg = reg.decode("utf8")[/php]
综上,整个流程就是:
[php]
....
reg = r'关键点:(.*)'
....
def analyse(url):
url = unicode(url).encode("utf8")
reg = reg.decode("utf8")
page = urllib2.urlopen(url).decode("utf8")
list = re.findall(reg, page)
....继续处理
[/php]
这样反复解码编码是不是太繁琐了?!python的这种设计究竟目的是什么??
PS:似乎将数据插入到数据库中依然还是用UTF-8编码,到时依然还得编解码一次。。。
[php]
pbvalue.set_stringvalue(unicode(value).encode('utf-8'))
[/php] |
|