一、注册输入验证码流程整合-13

#coding=utf-8
# 浏览器驱动包
from selenium import webdriver

# 引入随机数生成包
import random

# 使用pip库进行图片解析包/取图片的包
from PIL import Image

# python3.6.5
# 需要引入requests包 :运行终端->进入python/Scripts ->输入:pip install requests
from ShowapiRequest import ShowapiRequest

# Chrome浏览器的驱动
driver = webdriver.Chrome()

# 加载指定url界面
driver.get("http://www.5itest.cn/register")

# 使浏览器界面最大化
driver.maximize_window()

# 保存整个页面的图片
driver.save_screenshot("D:/imooc/imooc10.png")

# 通过获取验证码的id,计算code_element的元素
code_element = driver.find_element_by_id("getcode_num")

# 通过code_element的元素,计算code_element元素的坐标
# 获取的格式是:{"x":123,"y":345}
print(code_element.location)

# 左边点的坐标
left = code_element.location['x']*1.75
top = code_element.location['y']*1.75

# 右边点的坐标
right = code_element.size['width']*1.75+left
height = code_element.size['height']*1.75+top

# 打开一张图片,并命名为一个对象
im = Image.open("D:/imooc/imooc10.png")

# 按照一个坐标进行裁剪
img = im.crop((left,top,right,height))

# 保存裁剪后的图片
img.save("D:/imooc/imooc_crop10.png")

# 循环一次,指定生成随机的用户名、邮箱地址、密码
for i in range(1):
    user_name = ''.join(random.sample('1234567890abcdefg',5))
    user_emil = user_name +"@163.com"
    user_password = user_name

# 加载邮箱地址    
driver.find_element_by_id("register_email").send_keys(user_emil)

# 加载用户名
user_name_element_node = driver.find_elements_by_class_name("controls")[1]
user_element = user_name_element_node.find_element_by_class_name("form-control")
user_element.send_keys(user_name)

# 加载密码
driver.find_element_by_name("password").send_keys(user_password)


# 这里的api不变
# 需要缴费
# 修改my_appId = 1182042
# 修改my_appSecret = 523bfa72c8f64177b7a17f7a2f02c462
r = ShowapiRequest("http://route.showapi.com/184-1","1182042","523bfa72c8f64177b7a17f7a2f02c462" )

# 图片存放地址
r.addFilePara("image", r"D:/imooc/imooc_crop10.png")

# 代表识别几位数的图片,即多少位数的字。
r.addBodyPara("typeId", "35")

# r.addBodyPara("convert_to_jpg", "0")
res = r.post()

text = res.json()['showapi_res_error']['err']

print(res.text) # 返回信息

# 输入验证码
driver.find_element_by_id('captcha_code').send_keys(res.text)

# 延迟10s
#time.sleep(10)
# 关闭进程
#driver.close()

 

posted @ 2022-09-29 16:20  酱汁怪兽  阅读(245)  评论(0)    收藏  举报