2023 年十二月 一 二 三 四 五 六 日 « 二 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 分类目录
-
近期文章
近期评论
- Dillon 发表在《Mac OS代理工具Proxifier》
- RobertFluch 发表在《Bash Shell 快捷键》
- brew 不可用,重新安装 发表在《Mac下删除自己安装的Python》
- 子陵 发表在《Mac下删除自己安装的Python》
- Yucun 发表在《Mac下删除自己安装的Python》
文章归档
标签
7-zip 7zx active record CentALT cookie crontab dreamhost eclipse EPEL fast GarageBand google hyk-proxy LITTECMS mail mysql2 MySQLdb netgear nginx office PIL ports Proxifier pydev python readability requests sleep timeout torrent ubuntu unicorn urllib2 urlopen web.py yum zoc 下载 二笔 亿恩科技 吉他 睡眠 编码 路由 郑州景安
Tag Archives: urllib2
urllib2.urlopen处理gzip数据
某些网站不管的请求头部带不带 Accept-Encoding:gzip 他都返回gzip压缩过的内容,也就是返回的头部都带有 Content-Encoding:gzip 对于这种网站在使用urllib2.urlopen获取数据时候由于urlopen不会自动处理gzip,得到的都是乱码,让人难以看懂的内容 对付这种情况就需要我们单独处理 f = urllib2.urlopen(url) headers = f.info() rawdata = f.read() if (‘Content-Encoding’ in headers and headers['Content-Encoding']) or \ (‘content-encoding’ in headers and headers['content-encoding']): import gzip import StringIO data = StringIO.StringIO(rawdata) gz = gzip.GzipFile(fileobj=data) rawdata = … Continue reading
urllib2.urlopen方法的url中文编码问题
在urllib2.urlopen的文档中并没有提及url编码的问题,但实际使用中肯定会发现当url包含中文时会有编码异常 在实验多次之后发现只需要将传入urlopen的url编码为utf-8即可,不能是unicode哦,也不需要再做unquote处理
urllib2.urlopen超时的问题
urlopen方法在Python 2.6之前是没有timeout参数的,只能通过全局的socket超时设置,2.6之后增加了timeoute参数。 我在Mac下使用自带的Python 2.6的urlopen,没有设置timeout参数,结果在网络环境不好的情况下,时常出现read()方法没有任何反应的问题,程序卡死在read()方法里,搞了大半天,才找到问题,给urlopen加上timeout就ok了,设置了timeout之后超时之后read超时的时候会抛出socket.timeout异常 不知道其它版本有没有这个问题,还只是2.6的问题 想要程序稳定还需要给urlopen加上异常处理,再加上出现异常重试,程序就完美了。 代码: [python] fails = 0 while True: try: if fails >= 3: break f = urllib2.urlopen(url,timeout=20) page = f.read().decode(‘gbk’) except: fails += 1 else: break [/python]