python+selenium注册_ 随机生成邮箱、解析图片验证码

#coding=utf-8

from selenium import webdriver
from PIL import Image
import time
import random
import base64
import requests
import json


driver = webdriver.Chrome()
#初始化浏览器
def driver_init():
driver.get("http://www.xxx.cn/register")
time.sleep(3)

#获取element信息
def get_element(id):
element = driver.find_element_by_id(id)
return element

#获取随机生成 邮箱/用户名
def get_range_user():
user_info = ''.join(random.sample("1234567890abcdefghijklmn",10)) #aopnl12345@163.com
return user_info

#获取验证码图片
def get_code_image(file_name):
driver.save_screenshot(file_name)
code_element = driver.find_element_by_id("getcode_num") #获取图片验证码的元素
left = code_element.location['x']
top = code_element.location['y']
right = code_element.size['width']+left
height = code_element.size['height']+top
im = Image.open(file_name)
img = im.crop((left,top,right,height))
img.save(file_name)

#解析验证码图片
def code_online(file_name):
#数字+字母验证码 识别接口
url = 'http://xxxx.xxxxxxxx.com/api/xxx/xxxx.html'
header = {
'appCode':'xxxxxxxxxxxx',
'appKey':'xxxxxxxxxxxxxxxxxxx',
'appSecret':'xxxxxxxxxxxxxxxxxxxxx'
}
#验证码图片转base64格式
# f = open(r'D:/Tools/python/xxx/xxx/xx/img3.png', 'rb')
f = open(file_name,'rb')
v_pic = base64.b64encode(f.read())
data = {
'xx': 'xx',
'xx': xx
}
res = requests.post(url=url, data=data, headers=header)
text = res.json()['v_code']
return text

#运行主程序
def run_main():
#获取用户名
user_name_info = get_range_user()
#获取邮箱
user_email = user_name_info+"@163.com"
#验证码图片保存路径
file_name = "D:/Tools/python/xxx/xxx/xxx/imgyzm.png"
driver_init() #获取elemeng
get_element("register_email").send_keys(user_email)
get_element("register_nickname").send_keys(user_name_info)
get_element("register_password").send_keys("123456")
get_code_image(file_name)
text = code_online(file_name)
get_element("captcha_code").send_keys(text)
get_element("register-btn").click()
time.sleep(3)
# driver.close()

run_main()
原文地址:https://www.cnblogs.com/huaegg/p/13614131.html