前言:
之前玩过微博爬虫,可以实现验证码的自动解锁和账号自动登录,最近朋友说也想玩玩微博,问我要代码,运行后发现无法自动登录, 之前的代码用的是九茶大神的, 搜了发现他没有更新,看很多网友也在求解决方法,那我就只能自己动手解决问题了。

先不废话,直接上代码:WeiboVerificationCode

解决问题的思路和九茶是一样的,只是修改了大神的两部分代码:

  1. 更新匹配模型, ims.py -> images.py,
  2. 更新匹配算法,利用欧氏距离计算相似度, getType(browser) -> getType_similirity(browser)

更新ims的原因是因为利用欧式距离计算后发现调换“2”和“3”的位置或者当“4”在第个三位置时“1”都在最前边或者最后边,因此这个模型已经不能很好的识别验证码,于是我就更新了这个模型,这样代码就简洁一些。

ims和images的区别是数据结构不一样, ims是由二维数组构成, 而images是由一维数组构成。
以下是计算相似度的代码:

def getType_similirity(browser):""" 识别图形路径 ,采用欧氏距离计算相似度"""time.sleep(3.5)im0 = Image.open(StringIO.StringIO(browser.get_screenshot_as_png()))box = browser.find_element_by_id('patternCaptchaHolder')# 更改因为系统设置不同而造成的不兼容,以字体100%为准im0 = im0.resize((1034, 708))im = im0.crop((int(box.location['x']) + 10, int(box.location['y']) + 100,int(box.location['x']) + box.size['width'] - 10,int(box.location['y']) + box.size['height'] - 10)).convert('L')newBox = getExactly(im)im = im.crop(newBox)data = list(im.getdata())data_vec = np.array(data)vectDict = {}for i, j in images.items():vect = euclidean_distances(data_vec, j)vectDict[i] = vect[0][0]"""对欧氏距离计算结果排序,取最小值"""sortDict = sorted(vectDict.iteritems(), key=lambda d: d[1], reverse=True)ttype = sortDict[-1][0]px0_x = box.location['x'] + 40 + newBox[0]px1_y = box.location['y'] + 130 + newBox[1]PIXELS.append((px0_x, px1_y))PIXELS.append((px0_x + 100, px1_y))PIXELS.append((px0_x, px1_y + 100))PIXELS.append((px0_x + 100, px1_y + 100))return ttype

经过几十次的测试,成功率为百分之百,好了,废话不多说, 有什么问题加QQ群聊(526855734)

九茶博客: http://blog.csdn.net/bone_ace/article/details/71056741

python模拟微博登陆之验证码自动处理相关推荐

  1. Python模拟微博登陆,亲测有效!

    作者 l 上海小胖 来源 l Python专栏(ID:xpchuiit) 转载请联系授权(微信ID:pythonzhuanlan) 今天想做一个微博爬个人页面的工具,满足一些不可告人的秘密.那么首先就 ...

  2. Python 模拟微博登陆,亲测有效!

    今天想做一个微博爬个人页面的工具,满足一些不可告人的秘密.那么首先就要做那件必做之事!模拟登陆-- 代码是参考了:https://www.douban.com/note/201767245/,我对代码 ...

  3. java模拟微博登录_Python模拟微博登陆,亲测有效

    今天想做一个微博爬个人页面的工具,满足一些不可告人的秘密.那么首先就要做那件必做之事!模拟登陆-- 我对代码进行了优化,重构成了Python 3.6 版本,并且加入了大量注释方便大家学习. PC 登录 ...

  4. 微博登录设备有python_Python模拟微博登陆,亲测有效

    今天想做一个微博爬个人页面的工具,满足一些不可告人的秘密.那么首先就要做那件必做之事!模拟登陆-- 我对代码进行了优化,重构成了Python 3.6 版本,并且加入了大量注释方便大家学习. PC 登录 ...

  5. python绘制动态模拟图-Python 模拟动态产生字母验证码图片功能

    模拟动态产生字母验证码图片 模拟生成验证码,首先要做的是生成随机的字母,然后对字母进行模糊处理.这里介绍一下 Python 提供的 Pillow 模块. Pillow PIL:Python Image ...

  6. php微博cookie获取,python模拟新浪微博登陆之获取cookies-Go语言中文社区

    首先感谢敲代码的耗子,之前一直搞不懂登陆新浪微博的原理,看了他那篇文章之后,终于明白了基本原理.在这里主要是通过代码实现那篇文章的过程. 获取网页使用的包是requests,正则匹配用的是re,其他需 ...

  7. python绘制动态模拟图-Python 模拟生成动态产生验证码图片的方法

    模拟动态产生验证码图片 模拟生成验证码,首先要做的是生成随机的字母,然后对字母进行模糊处理.这里介绍一下 Python 提供的 Pillow 模块. Pillow PIL:Python Image L ...

  8. python模拟微信登陆抢券

    目标 抓取微信消息,过滤到我们想要的券的网址,并模拟微信点击.(由于网友的手速太快了,真的抢不到,所以萌生了作弊的想法) 实现 itchat(http://itchat.readthedocs.io/ ...

  9. python模拟app登陆_python scrapy版 模拟登陆appAnnie

    方法总比困难多,遇到问题,要找到问题的根源,不断地调试,不要放弃,一定会与解决的方法,程序是人写的,问题不可能没有办法解决,冷静的去分析,问题一定会解开的,加油! # -*- coding: utf- ...

最新文章

  1. 再创新高:DeepMind一年烧掉6.5亿美元,谷歌却挥手免除15亿债务
  2. 成功解决ValueError: could not convert string to float: ‘\\N‘
  3. C# 连接SQL数据库以及操作数据库
  4. python 中文识别 不用tesseract_Python——验证码识别 Pillow + tesseract-ocr
  5. Ubuntu18.04深度学习环境配置(简易方式)
  6. python获取字典长度_python字典操作
  7. 解决ssh登录慢的问题
  8. linux系统计时,关于linux:计算机系统中的计时机制
  9. rostcm6情感分析案例分析_案例分析,小刘如何处理情感关系?
  10. python导入os模块_python模块之OS模块
  11. 金蝶K3供应链-采购系统选项功能描述
  12. PMP 项目进度管理 -CPI SPI CV SV
  13. java编程语言怎么学习,详细说明
  14. STM32CubeMX | 36 - 使用CAN总线进行双板通信(TJA1050)
  15. nbiot和2g_NBIoT网络覆盖性能评价与优化
  16. 网络概念与常见问题全解析(网络面试题 学会这篇 基本都能答上来)
  17. android实现定位打卡,基于Android的移动定位课堂考勤系统设计与实现
  18. 烟花智能直播助手,直播带货必备爆单工具【直播助手脚本+技术教程】
  19. Jmeter--压力测试工具
  20. 你没玩过的全新版本!Win10这些骚操作你知多少

热门文章

  1. 在Windows 7、8、10、11中恢复Word文件的简单方法
  2. winSCP FTP设置删除确认按钮
  3. S7-PLCSIM Advanced V3.0无法启动虚拟网口的问题
  4. html5哪个标签首字母大写,HTML5中标签和常用规则有哪些?html5标签以及规则的介绍...
  5. Android 蓝牙 与wifi共存 A2dp 播放音乐卡音问题处理
  6. matlab的newff语句,matlab神经网络newff函数的使用
  7. 领峰:合法贵金属平台排名靠前的有哪些
  8. 常用的递归算法:dfs(深度优先搜索),记忆化搜索,分治
  9. 华硕Expertbook B7 Flip 评测
  10. 冰箱,已经给不了北京人民安全感了