#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()