广告
返回顶部
首页 > 资讯 > 后端开发 > Python >如何使用python批量登录带有验证码的网站
  • 137
分享到

如何使用python批量登录带有验证码的网站

2023-06-14 17:06:06 137人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

小编给大家分享一下如何使用python批量登录带有验证码的网站,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!Python主要应用领域有哪些1、云计算,典型应用OpenStack。2、WEB前端开发,众多大型网站均为pyth

小编给大家分享一下如何使用python批量登录带有验证码的网站,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!

Python主要应用领域有哪些

1、云计算,典型应用OpenStack。2、WEB前端开发,众多大型网站均为python开发。3.人工智能应用,基于大数据分析深度学习而发展出来的人工智能本质上已经无法离开python。4、系统运维工程项目自动化运维的标配就是python+Django/flask。5、金融理财分析,量化交易,金融分析。6、大数据分析。

一、介绍

原理为使用selenium驱动chORMe打开一个新的进程并打开数组中的网址,之后程序自动输入我们事先填入的账号密码,通过已实现的验证码识别模块填写验证码进行登录。登陆完成后自动切换页面,进行下一个页面的登录

二、准备

部署环境:win10

开发环境:python2.7

chrome版本89.0.4389.128

三、实践

3.1 下载驱动

设置查看chorme版本

下载对应版本的chromedriver

解压后,将chromedriver.exe分别放进chrome浏览器目录 和 Python根目录

chrome浏览器目录(如:C:\Program Files (x86)\Google\Chrome\Application)

Python根目录(如:D:\Python\python37)

3.2 安装python依赖

pip install pillow

pip install selenium

3.3 编写程序

batchlogin.py

#coding=UTF-8import timeimport osfrom selenium import webdriverfrom selenium.common.exceptions import NoAlertPresentExceptionfrom pytesser import *from PIL import Imagefrom PIL import ImageEnhance  from PIL import ImageFilter  import tracebackthreshold = 140  table = []  for i in range(256):      if i < threshold:          table.append(0)      else:          table.append(1)  rep={'O':'0',      'I':'1','L':'1',      'Z':'2',      'S':'8'      };  ## 灰度化照片后得到验证码def  getverify1(name):            im = Image.open(name)      # 转化到灰度图    imgry = im.convert('L')    # imgry.save('g'+name)      # 二值化,采用阈值分割法,threshold为分割点    out = imgry.point(table,'1')      # out.save('b'+name)      # 识别    text = image_to_string(out)      # 校正     text = text.strip()      text = text.upper();        for r in rep:          text = text.replace(r,rep[r])       # out.save(text+'.jpg')      print text      return text  # 获取浏览器当前的验证码图片并调用返回验证码def getVCode(driver):      # 保存浏览器当前页面    driver.save_screenshot("page.png")    # 从页面中截取验证码(XPATH定位)    vcode = driver.find_element_by_xpath("//*[@id='randImage']")    # 获取验证码上下左右边界坐标(手动加减像素以更精确)    loc = vcode.location        size = vcode.size    left = loc['x']+5    top = loc['y']    right = (loc['x'] +size['width']-5)    button = (loc['y']+size['height'])    # 截取页面中的验证码(进行截图:参数时一个元组(left,top,right,button)并保存    page_pic = Image.open('page.png')    v_code_pic = page_pic.crop((left,top,right,button))       v_code_pic.save('yzm.png')       return getverify1('yzm.png')    # return getverify1(v_code_pic)#自动登录操作(参数为登路账号,密码,webdriver驱动对象)def login(username,passWord,driver):    v_code = getVCode(driver)    driver.find_element_by_id('user_name').click() # 点击用户名输入框    driver.find_element_by_id('user_name').clear() # 清空输入框    driver.find_element_by_id('user_name').send_keys(username) # 自动敲入用户名        driver.find_element_by_id('user_password').click() # 点击密码输入框    driver.find_element_by_id('user_password').clear() # 清空输入框    driver.find_element_by_id('user_password').send_keys(password) # 自动敲入密码    driver.find_element_by_id('v_code').click() # 点击验证码输入框    driver.find_element_by_id('v_code').clear() # 清空输入框    driver.find_element_by_id('v_code').send_keys(v_code) # 自动敲入验证码    driver.find_element_by_xpath('//*[@id="SubmitButton"]').click()

open.py

#coding=UTF-8from selenium import webdriverfrom batchlogin import *driver = webdriver.Chrome()urls=[    'Http://www.test.com:6086/QX_SPD_B2B/','http://www.test.com:6086/QX_SPD_B2B/']for i in range(0, len(urls)):    url = urls[i]    windows_open = "window.open('" + url + "')"    driver.execute_script(windows_open)    time.sleep(1)    #获取当前页面句柄    windows = driver.window_handles    driver.switch_to_window(windows[i+1])    login("USERNAME","PASSWORD",driver)    #cookies=driver.get_cookies()    #print(cookies)    ##解决页面加载不正确的问题    time.sleep(2)time.sleep(100)driver.close()

3.4 优化

在图片保存那块直接读取网站的图片并且不保存直接识别

看完了这篇文章,相信你对“如何使用python批量登录带有验证码的网站”有了一定的了解,如果想了解更多相关知识,欢迎关注编程网Python频道,感谢各位的阅读!

--结束END--

本文标题: 如何使用python批量登录带有验证码的网站

本文链接: https://www.lsjlt.com/news/274183.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何使用python批量登录带有验证码的网站
    小编给大家分享一下如何使用python批量登录带有验证码的网站,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!python主要应用领域有哪些1、云计算,典型应用OpenStack。2、WEB前端开发,众多大型网站均为Pyth...
    99+
    2023-06-14
  • 教你怎么用python批量登录带有验证码的网站
    目录一、介绍二、准备三、实践3.1 下载驱动3.2 安装python依赖3.3 编写程序3.4 优化一、介绍 原理为使用selenium驱动chorme打开一个新的进程并打开数组中的...
    99+
    2022-11-12
  • 如何使用python登录带弱图片验证码的网站
    小编给大家分享一下如何使用python登录带弱图片验证码的网站,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!图片验证码一般都通过加干扰线、粘连或扭曲等方式来增加强...
    99+
    2023-06-14
  • 用python登录带弱图片验证码的网站
    目录图片验证码登陆点击个人用户登录获取图片验证码识别并登陆识别较复杂验证码算法其他上一篇介绍了使用python模拟登陆网站,但是登陆的网站都是直接输入账号及密码进行登陆,现在很多网站...
    99+
    2022-11-11
  • Python之selenium,使用webdriver模拟登录网站(含验证码)
    一、前言 前段时间做了一个小项目,其中有一段需要自动获取网站后台的数据,但是这个网站没有任何提供给开发者的API,所以只能靠自己去探索。 起初想着用发送请求的方式去模拟登陆,获取cookies,从而再获取网站后台数据,但是因为自己太菜了一些...
    99+
    2023-09-29
    python selenium 测试工程师 软件测试 性能测试 自动化测试 测试工具
  • Ajax如何实现带有验证码的局部刷新登录界面
    这篇文章给大家分享的是有关Ajax如何实现带有验证码的局部刷新登录界面的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。运行界面:验证码后台访问部分上一篇博客已经介绍多了,这里介绍如何利用img中src实现局部刷新验...
    99+
    2023-06-08
  • Python 中如何使用容器来验证二维码的有效性?
    二维码是一种非常方便的信息传递方式,它可以在短时间内传递大量信息。但是,有些二维码可能会被篡改或伪造,这会导致信息的泄露和误导。因此,在使用二维码传递敏感信息时,需要对二维码的有效性进行验证。本文将介绍如何使用 Python 中的容器来验...
    99+
    2023-08-22
    关键字 二维码 容器
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作