Chinaunix

标题: 请问怎么下载网页上验证码的图片~ [打印本页]

作者: 一护    时间: 2008-08-13 14:36
标题: 请问怎么下载网页上验证码的图片~
我想下载页面上的验证码图片 发现不行
import urllib


#here's how to download a file and save it remotely with urllib
fileUrl = 'http://tieba.baidu.com/cgi-bin/genimg?3134313535383239353435353330333431333439363637313930303030303030303030303030303132313836303930323764718C9ECE0AEC80BE2EF39631911F34'
urlStream = urllib.urlretrieve(fileUrl, 'test.jpg')

那个fileUrl地址是从网页上严重码的图片属性中直接取出的 发现下载后图片没有预览 就是没有下载成功 这个是百度贴吧的验证码 试了几个都不行 望高手指点一下 谢谢
作者: xiaoyu9805119    时间: 2008-08-13 14:44
你把具体哪个页面有验证码的给偶看下,呵呵。
我找了一圈也没看到哪儿有验证码的唉。
作者: 一护    时间: 2008-08-13 14:51
http://tieba.baidu.com/f?ct=& ... %E5%B2%D9&tb=on 就以贴吧的体操为例子吧
你点下标题栏 那个验证码就出来了
作者: 3227049    时间: 2008-08-13 14:51
用urllib2.Request发个referer和user-agent试试
作者: 9119111    时间: 2008-08-13 14:55
http://tieba.baidu.com/cgi-bin/g ... 0EE81C0895A1D28AB2A

这地址本身就无法直接讨问到啊
作者: 一护    时间: 2008-08-13 14:58
原帖由 9119111 于 2008-8-13 14:55 发表
http://tieba.baidu.com/cgi-bin/g ... 0EE81C0895A1D28AB2A

这地址本身就无法直接讨 ...

刚开始应该是可以的 这个应该是个动态的 但一段时间内应该是可以的 如果刷新了网页就不行了
作者: 3227049    时间: 2008-08-13 15:03

  1. import urllib2

  2. r=urllib2.Request('http://tieba.baidu.com/cgi-bin/genimg?3135313630383433363838393935373935363335313537313334303030303030303030303030303031323138363130343636E4F886A9DAF430EE81C0895A1D28AB2A',headers={'referer':'http://tieba.baidu.com/f?kz=1234567890','user-agent':'Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.0.1) Gecko/2008070208 Firefox/3.0.1'})

  3. fp=open('test.jpeg','wb')

  4. for  k in urllib2.urlopen(r):
  5.       fp.write(k)
复制代码

作者: 一护    时间: 2008-08-13 15:05
原帖由 3227049 于 2008-8-13 15:03 发表

import urllib2

r=urllib2.Request('http://tieba.baidu.com/cgi-bin/genimg?3135313630383433363838393935373935363335313537313334303030303030303030303030303031323138363130343636E4F886A9DAF430EE81 ...

我日 神奇   写了个头就可以了 这个是什么原因呢
作者: 一护    时间: 2008-08-13 15:06
7楼 谢拉
作者: 9119111    时间: 2008-08-13 15:07
试试:urllib.urlretrieve(url, filename)
作者: 可可熊    时间: 2008-08-13 15:08
关键的问题在于验证码的地址一直在变,不过可以从网页的源代码中得到:

var img_str="/cgi-bin/genimg?3135313630383432373333393630323533313430313037343638363030303030303030303030303030313231383631313030365D19352F9D36CB7440635AFBB0892D2D";
作者: xiaoyu9805119    时间: 2008-08-13 16:26
我也扒到这个变量和check_img()函数了。
作者: guijia8427    时间: 2008-08-13 16:35
原帖由 xiaoyu9805119 于 2008-8-13 16:26 发表
我也扒到这个变量和check_img()函数了。

你是怎么弄得?




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2