linux python 人工识别验证码的方法

1.关于python以及python的简单爬虫,我的上一篇博客已经写的很清楚,这里不多讲了,这里我提供自己解决的一种识别验证码的方法

2.整体思路:

          (1)登录登录页面,获取cookie

          (2)根据自己已经有的cookie访问验证码生成的网站

          (3)将验证码下载到本地

          (4)调用media模板,在终端显示验证码图片,自己输入

          (5)将post表单发送出去,完成登录

3.晒出源代码

             目前针对苏州大学的选课系统做了测试,测试如下

#!/bin/python
#encoding=utf-8
import urllib2
import urllib
import cookielib
import media

#验证码地址

addr="http://10.20.8.203/CheckCode.aspx"

#登录地址

hosturl="http://10.20.8.203/default2.aspx"

#发送的地址

posturl="http://10.20.8.203/default2.aspx"

     cj=cookielib.CookieJar()
     opener=urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
     opener.addheaders=[
        ("User-Agent","Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:19.0) Gecko/20100101 Firefox/19.0")
             ]

     #获取cookie
     opener.open(hosturl)

     #根据获取的cookie来访问验证码生成的网站
     op=opener.open(addr)
     fp=open("2.jpg","wb")
     fp.write(op.read())
     fp.close()
     ##########
     pic=media.load_picture("2.jpg")
     media.show(pic)
     code=raw_input("please input the code:")
     print "code:%s" %code
     media.close(pic) 
     data={
        'Button1':    ''
        ,'RadioButtonList1':    'ѧÉú'
        ,'TextBox1':    '1027401136'
        ,'TextBox2':    '28262826'
        ,'TextBox3':    code
        ,'__VIEWSTATE':    'dDwtMTg3MTM5OTI5MTs7PhMbjAbINgvvHsvy/Qdjcw3RMlRn'
        ,'lbLanguage':    ''    
            
         }

     #上面的data是firefox的firebug的post表单中获取的


     data=urllib.urlencode(data)


     print opener.open(hosturl,data).read()


4.效果截图


5.补充说明

python自带的module中没有media,所有每个人要自己下载,还是很推荐使用media,谁用谁知道,非常强大,每个人在转载时,希望表明出处!http://blog.csdn.net/crazyuo/article/details/8680573

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值