[CPyUG] 如何从urlopen请求的返回数据中读取一个int?

classic Classic list List threaded Threaded
9 messages Options
zkz
Reply | Threaded
Open this post in threaded view
|

[CPyUG] 如何从urlopen请求的返回数据中读取一个int?

zkz
已知返回的数据中的第一个4位是一个int类型,标识了一张图片的长度。请问如何才能得到这个int的值呢?

我用了以下的方法,但是得到数据不正确,大侠帮助一下,谢谢。

f = urllib2.urlopen(captcha_service_url)
data = f.read()
img_length = struct.unpack('i',data[0:4])
print img_length

--
Kevin Zheng

--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
强烈: 建议使用技巧: 如何有效地报告Bug
http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html
Reply | Threaded
Open this post in threaded view
|

Re: [CPyUG] 如何从urlopen请求的返回数据中读取一个int?

Zephyr-4


在 2011年6月30日 下午3:26,zkz <[hidden email]>写道:
已知返回的数据中的第一个4位是一个int类型,标识了一张图片的长度。请问如何才能得到这个int的值呢?

我用了以下的方法,但是得到数据不正确,大侠帮助一下,谢谢。

f = urllib2.urlopen(captcha_service_url)
data = f.read()
img_length = struct.unpack('i',data[0:4])
print img_length


dat = urllib.urlopen(url).read()
l = int(data[:4].encode('hex'), 16)

切成16进制,再转整型。

我手头上的一个验证码是直接这样处理的。



--
进出自由才是游戏者的生存之道。

http://zys-free.com
@zouyesheng

--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
强烈: 建议使用技巧: 如何有效地报告Bug
http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html
zkz
Reply | Threaded
Open this post in threaded view
|

Re: [CPyUG] 如何从urlopen请求的返回数据中读取一个int?

zkz
非常感谢,我已经能够获得长度了,那我接下来如何才能获得验证码图片数据,然后绘制成图片呢?

2011/6/30 Zephyr <[hidden email]>


在 2011年6月30日 下午3:26,zkz <[hidden email]>写道:

已知返回的数据中的第一个4位是一个int类型,标识了一张图片的长度。请问如何才能得到这个int的值呢?

我用了以下的方法,但是得到数据不正确,大侠帮助一下,谢谢。

f = urllib2.urlopen(captcha_service_url)
data = f.read()
img_length = struct.unpack('i',data[0:4])
print img_length


dat = urllib.urlopen(url).read()
l = int(data[:4].encode('hex'), 16)

切成16进制,再转整型。

我手头上的一个验证码是直接这样处理的。



--
进出自由才是游戏者的生存之道。

http://zys-free.com
@zouyesheng

--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
强烈: 建议使用技巧: 如何有效地报告Bug
http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html



--
Kevin Zheng

--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
强烈: 建议使用技巧: 如何有效地报告Bug
http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html
Reply | Threaded
Open this post in threaded view
|

Re: [CPyUG] 如何从urlopen请求的返回数据中读取一个int?

Zephyr-4


在 2011年6月30日 下午4:03,zkz <[hidden email]>写道:
非常感谢,我已经能够获得长度了,那我接下来如何才能获得验证码图片数据,然后绘制成图片呢?

我不知道你的数据是封装成什么样子的啊。

如果是验证码,你还要把正确的字符解析出来吧。

图片数据,可以直接

buf = cStringIO.StringIO(img_data)

就可以了。



--
进出自由才是游戏者的生存之道。

http://zys-free.com
@zouyesheng

--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
强烈: 建议使用技巧: 如何有效地报告Bug
http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html
zkz
Reply | Threaded
Open this post in threaded view
|

Re: [CPyUG] 如何从urlopen请求的返回数据中读取一个int?

zkz
数据格式是这样,img_length+img_data+captcha_length+captcha_data

得到img_length之后,我怎么去读img_data呢?

2011/6/30 Zephyr <[hidden email]>


在 2011年6月30日 下午4:03,zkz <[hidden email]>写道:
非常感谢,我已经能够获得长度了,那我接下来如何才能获得验证码图片数据,然后绘制成图片呢?

我不知道你的数据是封装成什么样子的啊。

如果是验证码,你还要把正确的字符解析出来吧。

图片数据,可以直接

buf = cStringIO.StringIO(img_data)

就可以了。




--
进出自由才是游戏者的生存之道。

http://zys-free.com
@zouyesheng

--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
强烈: 建议使用技巧: 如何有效地报告Bug
http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html



--
Kevin Zheng

--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
强烈: 建议使用技巧: 如何有效地报告Bug
http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html
Reply | Threaded
Open this post in threaded view
|

Re: [CPyUG] 如何从urlopen请求的返回数据中读取一个int?

Zephyr-4


在 2011年6月30日 下午4:14,zkz <[hidden email]>写道:
数据格式是这样,img_length+img_data+captcha_length+captcha_data

得到img_length之后,我怎么去读img_data呢?

直接取就完了啊。

img_data = data[4 : img_length + 4]




--
进出自由才是游戏者的生存之道。

http://zys-free.com
@zouyesheng

--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
强烈: 建议使用技巧: 如何有效地报告Bug
http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html
zkz
Reply | Threaded
Open this post in threaded view
|

Re: [CPyUG] 如何从urlopen请求的返回数据中读取一个int?

zkz
不好意思啊,再问一个问题,怎么从img_data绘制成图片呢?我找到了个示例,但是看不懂,实在太感谢了!

import Image, ImageDraw im = Image.open("lena.pgm") draw = ImageDraw.Draw(im) draw.line((0, 0) + im.size, fill=128) draw.line((0, im.size[1], im.size[0], 0), fill=128) del draw # write to stdout im.save(sys.stdout, "PNG")

2011/6/30 Zephyr <[hidden email]>


在 2011年6月30日 下午4:14,zkz <[hidden email]>写道:

数据格式是这样,img_length+img_data+captcha_length+captcha_data

得到img_length之后,我怎么去读img_data呢?

直接取就完了啊。

img_data = data[4 : img_length + 4]




--
进出自由才是游戏者的生存之道。

http://zys-free.com
@zouyesheng

--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
强烈: 建议使用技巧: 如何有效地报告Bug
http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html



--
Kevin Zheng

--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
强烈: 建议使用技巧: 如何有效地报告Bug
http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html
Reply | Threaded
Open this post in threaded view
|

Re: [CPyUG] 如何从urlopen请求的返回数据中读取一个int?

Zephyr-4


在 2011年6月30日 下午5:09,zkz <[hidden email]>写道:
不好意思啊,再问一个问题,怎么从img_data绘制成图片呢?我找到了个示例,但是看不懂,实在太感谢了!

你可以直接把 buf 直接写到一个文件中去啊。

如果是 http 的返回的话,直接返回 buf,指定 content-type 就可以了 (image/gif 什么的)。

--
进出自由才是游戏者的生存之道。

http://zys-free.com
@zouyesheng

--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
强烈: 建议使用技巧: 如何有效地报告Bug
http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html
zkz
Reply | Threaded
Open this post in threaded view
|

Re: [CPyUG] 如何从urlopen请求的返回数据中读取一个int?

zkz
非常感谢我终于搞定这个问题了,thank you!

2011/6/30 Zephyr <[hidden email]>


在 2011年6月30日 下午5:09,zkz <[hidden email]>写道:

不好意思啊,再问一个问题,怎么从img_data绘制成图片呢?我找到了个示例,但是看不懂,实在太感谢了!

你可以直接把 buf 直接写到一个文件中去啊。

如果是 http 的返回的话,直接返回 buf,指定 content-type 就可以了 (image/gif 什么的)。


--
进出自由才是游戏者的生存之道。

http://zys-free.com
@zouyesheng

--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
强烈: 建议使用技巧: 如何有效地报告Bug
http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html



--
Kevin Zheng

--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
强烈: 建议使用技巧: 如何有效地报告Bug
http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html