目录

一、思路

二、代码

三、注意事项


一、思路

使用selenium先get到页面,截取登陆界面(包括验证码)。代码处理+ocr识别,自从输出验证码,再使用selenium定位到登陆元素,点击登陆即可。

二、代码

from selenium import webdriver
import cv2
from paddleocr import PaddleOCR
import re
from PIL import Image
import requests
import sys
import scipyif __name__ == '__main__':driver = webdriver.Chrome()driver.implicitly_wait(3)        # 设置隐士等待driver.get('url')    # 要爬取的url# 屏幕截图----进入到验证码界面再截图driver.save_screenshot('code.png')# 找到验证码                        验证码页面元素标签photo = driver.find_element_by_tag_name('img')x = photo.location['x']y = photo.location['y']width = photo.size['width']height = photo.size['height']# 保存验证码im = Image.open('code.png')im = im.crop((x, y, x + width, y + height))im.save('new_code.png')raw = cv2.imread('new_code.png',0)# 二值化图片binary = cv2.adaptiveThreshold(~raw, 255, cv2.ADAPTIVE_THRESH_GAUSSIAN_C, cv2.THRESH_BINARY, 35, -5)cv2.imshow('binary_picture', binary)if cv2.waitKey(0):cv2.destroyWindow('binary_picture')# 调用paddleOCR识别ocr = PaddleOCR(use_angle_cls=True ,use_gpu=False)img_info = ocr.ocr(binary, cls=False)print(img_info)# 最终结果img_result = ""for line in img_info:# 得到图片中文字  循环加总,(多行的情况)img_result += line[-1][0]img_result += ' '# 去除特殊字符text1 = re.findall(r'[^\*"/:?\\|<>″′‖ 〈\n]', img_result, re.S)text1 = "".join(text1)print('验证码图片信息:' + text1)

三、注意事项

除上述之外还需做一个其他事情,就是假设验证码里包含x等形似数学运算符的,需要做一个判断来保持识别的准确率。

列如:

# 注意这里的×为乘号
if '×' in text:text.replace('×','X')

Python爬虫自动识别验证码登陆相关推荐

  1. python tesseract selenium自动识别验证码登陆

    文章目录 前言 一.下载安装tesserocr 1. 环境:win7 x64位 +python3.6 2. 下载链接 3.安装注意事项 二.安装pytesseract和Pillow包 1.使用pych ...

  2. 使用python爬虫模拟12306登陆

    使用python爬虫模拟12306登陆   需要用到requests库函数,下载requests库函数地方法:直接在命令行输入以下代码就可以了就可以了. pip install requests 模拟 ...

  3. Python爬虫之验证码处理

    1.了解常见验证码 在日常生活与工作中,在进行各类设计个人账户安全的操作时,往往需要填写各种验证码来进行验证,短信.语音.文字.问答.图片.拖拽.旋转腾挪.拼图接图...千奇百怪,各种各样,种类繁多, ...

  4. python爬虫遇到验证码的处理方法(以爬取中国执行信息公开网为例)

    朋友们大家好,python爬虫是在学习python时比较容易上手的学习方式,爬虫的思路简要以下几点: 1.获取需要爬取页面的网址,并且对网页内容进行分析.(主要就源代码讨论,如果我们需要的内容没有在源 ...

  5. Python 爬虫云验证码识别

    Python 爬虫验证码识别 1. 百度智能云 2. 使用 2.1 API 文档使用 2.2 SDK 文档使用 3. 获取古诗文网验证码 免责声明:自本文章发布起, 本文章仅供参考,不得转载,不得复制 ...

  6. python爬虫(一):模拟登陆微博

    最近花了不少时间来学python爬虫,觉得还是有很多问题的,比如说requests.get获得Pixiv的网页源代码,一直获取不到,不过我猜测大概是headers的问题,准备之后处理. 废话少说我们先 ...

  7. python爬虫滑动验证码_python爬虫21 | 对于b站这样的滑动验证码,不好意思,照样自动识别...

    今天 要来说说滑动验证码了 大家应该都很熟悉 点击滑块然后移动到图片缺口进行验证 现在越来越多的网站使用这样的验证方式 为的是增加验证码识别的难度 那么 对于这种验证码 应该怎么破呢 接下来就是 打开 ...

  8. python爬虫遇到验证码、输入验证码后提醒验证码错误_爬虫遇到头疼的验证码?Python实战讲解弹窗处理和验证码识别...

    前言 在我们写爬虫的过程中,目标网站常见的干扰手段就是设置验证码等,本就将基于Selenium实战讲解如何处理弹窗和验证码,爬取的目标网站为某仪器预约平台 可以看到登录所需的验证码构成比较简单,是彩色 ...

  9. Python爬虫教程——新浪微博登陆

    一.前期准备: 编译环境:Python 3.4 Python库:requests.re.urllib.BeautifulSoup 二.实现分析: 尝试爬虫登陆网站时,会涉及到很多Javascript. ...

最新文章

  1. Mysql元数据分析
  2. J2ME下的手机游戏的优化
  3. 蓝桥杯python青少年_蓝桥杯大赛青少年组省赛结果公布
  4. 世界机场数据(带位置坐标)
  5. 【离散数学】纠错码基本理论
  6. [转]项目管理有感之一 沟通
  7. php 取oracle图片,一个php导出oracle库的php代码
  8. HDU1850 Being a Good Boy in Spring Festival
  9. CS20Chapter2
  10. 快来,前方美女出没!!
  11. Java API方式调用Kafka各种协议
  12. 员工培训与开发实训心得体会_人力资源实训个人总结
  13. 医疗物联网行业调研报告 - 市场现状分析与发展前景预测
  14. 白化滤波器 matlab,白化滤波器-matlab-程序.doc
  15. 【Android】面试宝典
  16. css简单画法,几种基本图形的CSS画法。(附源码)
  17. centos格式化优盘命令_Centos7 格式化分区并挂载
  18. 考研和计算机三级,考研考计算机与考软件有什么区别吗
  19. SuperMapr测量地图面积
  20. 鬼谷八荒逆天改命修改教程(3月亲测有效)

热门文章

  1. Esxi虚拟系统中虚拟机docker桥接网络
  2. sudo:apt:command not found
  3. 记一次ansible执行报错Structure needs cleaning
  4. 「低代码系列报道」华为云打造行业aPaaS集群,抢占SaaS发展黄金十年
  5. 【ROS-Gazebo】开源四足机器人仿真模型pig_dog
  6. 如何生成你的专属推荐文案?智能文案在1688平台的应用...
  7. php微信统一公众号支付接口,微信公众号支付怎么实现统一下单接口
  8. 4.监听器Listener
  9. java获取当前年份法定节日的时间
  10. ADS-Smith圆图 阻抗匹配调试经验总结