返回信息流url=u"http://www.baidu.com/setprefer?NEWS=N&NR=on&NW=N&SL=2&submit=baocun"
req = urllib2.Request(url)
u = urllib2.urlopen(req)
url=u"http://www.baidu.com/setprefer?NEWS=N&NR=on&NW=N&SL=2&submit=保存设置"
req = urllib2.Request(url)
u = urllib2.urlopen(req)
上面两段代码唯一的区别是后者的url中存在中文,因为这个原因导致后者在运行中出错,错误位置是u = urllib2.urlopen(req),错误提示unicodeencodeerror,其中url是unicode的形式
这是一条镜像帖。来源:北邮人论坛 / soft-design / #29528同步于 2008/9/2
该镜像源已超过 30 天没有更新,可能在源站已被删除。
SoftDesign机器人发帖
请教懂python的大牛
yanqiang
2008/9/2镜像同步9 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
urlencode
【 在 yanqiang (厚墨) 的大作中提到: 】
: url=u"http://www.baidu.com/setprefer?NEWS=N&NR=on&NW=N&SL=2&submit=baocun"
: req = urllib2.Request(url)
: u = urllib2.urlopen(req)
: ...................
url=u"http://www.baidu.com/setprefer?NEWS=N&NR=on&NW=N&SL=2&submit=保存设置"
req = urllib2.Request(url.encode('utf-8'))
u = urllib2.urlopen(req)
试试这个
楼上正解,非常感谢
原来urllib2.Request()函数的参数需要用utf-8或者cp936编码,也即要传byte string
上面的url因为上面处理需要,解码成了unicode
非常感谢Wing
另外不知道我们学校python用户规模有多大,我也是刚刚用这个平台
为什么不urllib2.urlopen('http://www.baidu.com/setprefer?NEWS=N&NR=on&NW=N&SL=2&submit=保存设置').read()呢
学习rubyonrail中。不打扰了。
【 在 ericyosho 的大作中提到: 】
: wks 人生苦短,你还用那么多
: 一会儿python,一会儿octave的。
: 你是不是还打算 matlab scripting啊
: ...................
【 在 yanqiang 的大作中提到: 】
: 楼上正解,非常感谢
: 原来urllib2.Request()函数的参数需要用utf-8或者cp936编码,也即要传byte string
: 上面的url因为上面处理需要,解码成了unicode
: ...................
呵呵,我也是刚好看教程看到这儿,现学现卖