栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

selenium实现自动化登录(带验证码)

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

selenium实现自动化登录(带验证码)

selenium实现自动化登录(带验证码)

本实验主要以广东省政务服务网为例、主要步骤大致如下:

1、进入广东省政务服务网登录界面拿到url
url:https://tyrz.gd.gov.cn/pscp/sso/static/?redirect_uri=http%3A%2F%2Fwww.gdzwfw.gov.cn%2F_goin_%2F%3Fr%3D%252F_in_%252F%253Fp%253Dportal%2526r%253D%25252F&client_id=gdbsYSS

2、使用driver的find_element_by_xpath拿到输入框、图片和按钮的位置 3、验证码识别(使用ddddocr库)

​ 下载图片下载到本地、使用ddddocr读取识别

主要代码如下所示:

import ddddocr
from selenium import webdriver
import time
import urllib.request

path = 'F:Environmentpython3.7.9chromedriver_win32chromedriver.exe'
driver = webdriver.Chrome(executable_path=path)

zhanghao = ''
mima = ''

ocr = ddddocr.DdddOcr()


def login():
    url = 'https://tyrz.gd.gov.cn/pscp/sso/static/?redirect_uri=http%3A%2F%2Fwww.gdzwfw.gov.cn%2F_goin_%2F%3Fr%3D%252F_in_%252F%253Fp%253Dportal%2526r%253D%25252F&client_id=gdbsYSS'
	# 进入登录界面
    driver.get(url)
	
    time.sleep(2)

    try:

        driver.find_element_by_xpath('//*[@id="app"]/div/div[2]/div[2]/div[2]/div/div[2]/div/div[2]/div[1]/div[2]/div[2]/a[1]').click()

        driver.find_element_by_xpath(
            '//*[@id="app"]/div/div[2]/div[2]/div[2]/div/div[2]/div/div[2]/div[1]/div[1]/form/div[1]/div/div[1]/input').send_keys(
            zhanghao)
        driver.find_element_by_xpath(
            '//*[@id="app"]/div/div[2]/div[2]/div[2]/div/div[2]/div/div[2]/div[1]/div[1]/form/div[2]/div/div[1]/input').send_keys(
            mima)

        # 拿到验证码图片
        img = driver.find_element_by_xpath(
            '//*[@id="app"]/div[1]/div[2]/div[2]/div[2]/div/div[2]/div/div[2]/div[1]/div[1]/form/div[3]/div/div[2]/img')

        spath = "./code.jpg"
		
        # 下载到本地
        urllib.request.urlretrieve(img.get_attribute("src"), spath)
		
        # 二进制流读取
        with open("./code.jpg", "rb") as file:
            f_bytes = file.read()
		
        # ddddocr识别
        res = ocr.classification(f_bytes)
        if len(res) < 4:
            login()
        else:
            driver.find_element_by_xpath(
                '//*[@id="app"]/div/div[2]/div[2]/div[2]/div/div[2]/div/div[2]/div[1]/div[1]/form/div[3]/div/div[1]/input').send_keys(
                res)
            driver.find_element_by_xpath('//*[@id="app"]/div/div[2]/div[2]/div[2]/div/div[2]/div/div[2]/div[1]/div[1]/form/div[5]/div/button').click()
    except Exception:
        # 出现异常继续登录
        login()
login()

注:
1、安装ddddocr库 pip install ddddocr

​ 2、zhanghao和mima使用自己的

​ 3、 可能会出现识别错的验证码登录不成功,不过也好处理,这里就不展示了

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/982247.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号