在上一节验证码爬取并识别中我们通过阿里云市场的api识别了验证码,不过验证码的正确率经测试只有60%左右登录了10次,失败了4次

  1. 作为一个稳重的程序员,怎么能像天气预报一样不靠谱呢。因此我又写了一段程序,通过对于服务器不停的登录请求,来验证我们的验证码值是否正确,并把错误的存入一个新的error.txt文件。
  2. 对于error.txt的内容我又通过一个简易的gui小程序进行人工的肉眼暴力识别。

产生错误列表文件的代码:

import json
import requests
from requests import exceptions
#此处打开的文件为上一节识别的验证码字典表
fr = open('dict.txt','r')
dic = dict()
for line in fr:line = line.strip().split(',')dic[line[0]] = line[1]
# print(dic)
fr.close()
URL = 'http://202.203.209.96/v5api/api/GetLoginCaptchaInfo/f525199d-9d7b-4547-9094-1528bed37496'
headers={'User-Agent':'Mozilla/5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 Safari/601.1'}
##请求当然要暴力一点,先来他个100万
for x in xrange(1,1000000):response = requests.get(URL,headers=headers)imgguid  = response.json()['ImgGuid']caputre  = dic[imgguid]tempguid = response.json()['TempGuid']url2 = 'http://202.203.209.96/v5api/OAuth/Token'response2 = requests.post(url2,headers=headers,data={'grant_type':'password','username':'20141120273','password':'tudoudou5283|%s*%s'%(caputre,tempguid),'client_id':'ynumisSite'})# print response2.request.headersprint response2.status_codeerrorcode =set()if(response2.status_code !=200):errorcode.add(imgguid)fw = open('error.txt','a')fw.write(str(imgguid)+'\n')fw.close()jsonobj = json.loads(response2.text)

上面代码中涉及到的一点模拟登陆验证的代码请参照模拟登陆小节。

此时我们已经拥有了一个error.txt
我们下一步通过gui来对于该error内容进行识别。

GUi代码:

#encoding: utf-8
from Tkinter import *
list=[]
with open('error.txt') as f:for line in f.readlines():list.append('.'.join([line[:-1],'gif']))list2={}
root=Tk()
root.geometry('200x120')filename=list.pop()
photo=PhotoImage(file=filename)
img=Label(root,image=photo)
img.pack()def get_code(event,img):global photoglobal filenameglobal list2list2[filename]=code_text.get()code_text.set("")with open("right.txt",'a') as m:m.write(filename[:-4]+','+list2[filename]+"\n")filename=list.pop()photo=PhotoImage(file=filename)img["image"]=photoprint list2print filenamedef get_code_Adaptor(fun,**kwds):return lambda event,fun=fun,kwds=kwds: fun(event, **kwds)code_text=StringVar()
code=Entry(root,textvariable=code_text)
code.focus_set()
code.bind('<Key-Return>',get_code_Adaptor(get_code,img=img))
code.pack()button=Button(root,text='Press Enter',command=get_code_Adaptor(get_code,img=img))
button.pack()root.mainloop()
验证码gui程序

为了更准确的验证码而奋斗-云大urp教务系统大作战(1.5)相关推荐

  1. 验证码爬取并识别-云大urp教务系统大作战(1)

    1. 穷举爬取urp的验证码 因为小道消息得知urp的验证码是有限数量的,因此通过数百万次的请求,下载所有验证码图片到本地,并生成了一份验证码图片的文件名的文件. 爬取所有验证码图片的代码: #enc ...

  2. Python爬取URP教务系统课程表并保存到excel

    Python爬取URP教务系统课程表并保存到excel 爬取URP教务系统课程表最终结果如图所示: 接下来开始操作: 首先打开教务系统->按F12->点击Network->刷新一下界 ...

  3. Python selenium自动获取URP教务系统课表并以图片形式保存

    之前写过一篇也是爬URP的(Python爬取URP教务系统课程表并保存到excel),不过用的是request+post请求,中间就借用了一下selenium获取验证码链接,所以这次我就写了一个单单用 ...

  4. Python 爬虫获取 URP 教务系统学籍信息,你的信息 正暴露在 互联网中!

    初衷 本文旨在提醒同学们及时修改密码,增强保护个人隐私的意识,因此代码中一些关键数据以及校名等信息不会公开!复制粘贴文章中的代码不会爬到任何东西.只是作为学习 Python 爬虫的一点总结而已! 作者 ...

  5. python模拟登录URP教务系统评教

    主要是对cookie的处理,对正则表达式的应用 多大学用的都是urp的吧,帮同学评教的时候也改进了许多. 正常评教时每个网页需要等待2分钟,程序里没有激活js直接就可以秒评. ps: urp的网页写的 ...

  6. [PHP]PHP爬虫 - URP教务

    一.什么是爬虫? 网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本.另外一些不常使用的名字还有蚂蚁.自动索 ...

  7. atitit.短信 验证码  破解  v3 p34  识别 绕过 系统方案规划----业务相关方案 手机验证码  .doc...

    atitit.短信 验证码  破解  v3 p34  识别 绕过 系统方案规划----业务相关方案 手机验证码  .doc 1. 手机短信验证码 vs 图片验证码 安全性(破解成本)确实要高一些1 1 ...

  8. 【Matlab验证码识别】遗传算法和最大熵优化+大津法(OTSU)+自定义阈值数字验证码识别【含GUI源码 1694期】

    一.代码运行视频(哔哩哔哩) [Matlab验证码识别]遗传算法和最大熵优化+大津法(OTSU)+自定义阈值数字验证码识别[含GUI源码 1694期] 二.matlab版本及参考文献 1 matlab ...

  9. 基于QT(C++)实现学本科教务系统(URP系统)【100010528】

    JWCKnife 写着写着代码就几千了 PS:教务处已经改版,Network文件夹下内容需要更新 Introduction 四川大学本科教务系统(URP系统)在访问量较大的时候很容易出现500 Ser ...

最新文章

  1. Qt Creator中常用快捷键和小技巧
  2. python的ide环境中创建文件_使用Python开发环境Wing IDE设立项目注意事项
  3. scrum 12.2
  4. 【Java学习笔记之二十八】深入了解Java8新特性
  5. 抽象类可以创建对象吗_【基础篇】java-抽象类与继承的补充
  6. apache spark_Apache Spark:更改架构之前必须解决的5个陷阱
  7. python转换为c代码_bash 转换为C代码
  8. imu与gps之间的时间戳_TCP 窗口缩放、时间戳和 SACK(2) | Linux 中国
  9. LeetCode 59. Spiral Matrix II
  10. 算法知识点——(1)特征工程
  11. html图片左右滑动代码dw,DW图片无缝滚动代码
  12. C#上位机与欧姆龙PLC通讯(FINS)
  13. powerbi使用说明_个人如何免费注册 PowerBI 账号(终极说明)
  14. MATLAB:DTFT、DFT 相关题目学习
  15. 统一社会信用代码 php验证
  16. matlab 分类学习工具箱 Classification Learner的使用及导出其生成的图,混淆矩阵confusion matrix的画法
  17. 湖大计算机学院博士后李晓灿,李蕊-湖大信息科学与工程学院
  18. 侍魂无限跳服务器,经典游戏《真侍魂》橘右京的无限残像,对手就这么活活的被挡死了...
  19. 全国计算机扥及考试c语言教程,【计算机】第1章 C语言绪论.ppt
  20. 洛谷3238 HNOI2014 道路阻塞 最短路 线段树(无代码)

热门文章

  1. 利用UIScrollView和UIPageControl实现图片切换
  2. Spring – IoC 容器
  3. ResultSet: 结果集对象
  4. 03-26 网络流量分析
  5. pow python用法菜鸟_pow在python中的含义及用法
  6. mysql爆表_十种Mysql报错注入
  7. 如何系统地自学前端(女生),女生发展前端是否是青春饭?
  8. 科普web前端开发如何学习,图文全面解析
  9. JavaScript 是如何成为一门严肃的编程语言的
  10. 刚进职场的IT前端小白,如何规划自己的未来之路?有哪些发展方向?