blackgun 发表于 2014-06-30 15:58

python爬虫的验证码问题,两次访问造成验证码不相符

我在用爬虫访问一个页面的时候需要一个验证码输入。但问题是这个验证码图像是一个asp页面,而包括这个验证码的也是一个asp页面。也就是说出现了这样一个问题,我先访问页面的时候显示的时候是一个验证码,但是我获取验证码图像的时候,验证码的页面又被我访问了一次,同开始不一样了:-L。现在请各位帮忙出个解决的思路,我实在是黔驴技穷了。
贴上部分程序,及验证码网址
http://www.ningbocatc.com/nymszx/ckvode.asp?id=43

部分程序如下

    purl='http://www.ningbocatc.com/nymszx/ckvode.asp?id=43'
    content=urllib2.urlopen(purl).read()   #一定要访问一次这个界面
    codedir="./pic/"
    turl = 'http://www.ningbocatc.com/nymszx/checkcode.asp'
    file("./pic/temp.gif","wb").write(urllib.urlopen(turl).read())
    img=binary(codedir+"temp.gif")
    num=recognize(img)   #这是ocr识别的函数
   
    print num

qxhgd 发表于 2014-06-30 17:39

lz恶意刷票啊,佩服

linustd 发表于 2014-06-30 18:48

没关系。

客户端的验证码,在服务器端肯定也存了一个东西用来区分各个不同的用户。而这个区分不同浏览器的方法就是用cookie最简单,最正规,而你这个网页的网站,肯定也是采用的cookie,不管是什么session也好,直接写cookie也好,各种加密的cookie也好,总之都是cookie.

你访问网页的时候, 把这个网页设置的所有cookie都记录下来,再访问那个验证码asp页面的时候,把这些所有cookie都发送过去,这样去到的验证码,肯定能通过服务器验证。

blackgun 发表于 2014-06-30 21:44

对,我今天仔细分析了一下。就是你说的道理。现在去分析cookie中

blackgun 发表于 2014-06-30 21:45

不是恶意刷票啦,是给我女儿投票啦,实在懒得去找人投。还是研究研究爬虫有趣

linustd 发表于 2014-07-01 07:26

blackgun 发表于 2014-06-30 21:44 static/image/common/back.gif
对,我今天仔细分析了一下。就是你说的道理。现在去分析cookie中

还用分析啊,直接把全部cookie都存下来,然后再都发回去就行,总共也不会超过10行代码。

halfcrazy 发表于 2014-07-02 13:47

cookiejar = cookielib.CookieJar()
urlopener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookiejar))
urllib2.install_opener(urlopener)
之后网页都用urlopener.open()打开就好了。
页: [1]
查看完整版本: python爬虫的验证码问题,两次访问造成验证码不相符