Chinaunix
标题:
urllib中文问题
[打印本页]
作者:
liu.xin
时间:
2012-03-07 14:54
标题:
urllib中文问题
def inside(net):
req = urllib2.Request(net)
con=urllib2.urlopen(req).read()
return con
定义一个函数,net为输入的网址。
现在是print con是可以读取到中文的内容
但return就不是了
麻烦问下怎么解决
谢谢
作者:
timespace
时间:
2012-03-07 15:22
print con是中文就说明OK了
return con不会改变真实内容
“但return就不是了”是什么意思?请具体点说明
作者:
liu.xin
时间:
2012-03-07 15:39
inside('http://www.baidu.com')
'<!doctype html><html><head><meta http-equiv="Content-Type" content="text/html;charset=gb2312"><title>\xb0\xd9\xb6\xc8\xd2\xbb\xcf\xc2\xa3\xac\xc4\xe3\xbe\xcd\xd6\xaa\xb5\xc0
作者:
timespace
时间:
2012-03-07 15:43
只不过python转义了,依然是中文,该怎么用就怎么用
>>> print '<!doctype html><html><head><meta http-equiv="Content-Type" content="text/html;charset=gb2312"><title>\xb0\xd9\xb6\xc8\xd2\xbb\xcf\xc2\xa3\xac\xc4\xe3\xbe\xcd\xd6\xaa\xb5\xc0'
<!doctype html><html><head><meta http-equiv="Content-Type" content="text/html;charset=gb2312"><title>百度一下,你就知道
>>>
复制代码
作者:
liu.xin
时间:
2012-03-07 15:46
定义的列表是list=["搜索","专家"]
想判断list这些是不是都在return的内容里,这应该怎么写好?
作者:
liu.xin
时间:
2012-03-07 15:56
本帖最后由 liu.xin 于 2012-03-07 15:56 编辑
我用英语做匹配就可以,但是用中文就不行··············
作者:
timespace
时间:
2012-03-07 17:02
又没明白你是怎么个不行。。。
>>> gb = '\xb0\xd9\xb6\xc8\xd2\xbb\xcf\xc2\xa3\xac\xc4\xe3\xbe\xcd\xd6\xaa\xb5\xc0'
>>> print gb
百度一下,你就知道
>>> gb.find('百度')
0
>>> gb.find('知道')
14
>>> import re
>>> re.search(r'知道', gb)
<_sre.SRE_Match object at 0x02A4F090>
复制代码
作者:
timespace
时间:
2012-03-07 17:27
当然有个重点:匹配字符串和被匹配字符串的编码要一致
比如百度那个页面编码是gb2312,待搜索的字符串必须是gb2312编码或者两者都转为unicode
作者:
bikong0411
时间:
2012-03-08 09:21
转化下编码就可以了
作者:
shockbbs
时间:
2012-03-08 21:10
怎么转呢
作者:
luckpiky
时间:
2012-03-08 23:56
urllib.urlopen(url).read().decode('gb2312')
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2