def getCode(imgByte, codeType):
    chaojiying = Chaojiying_Client('zx454049162', '454049162',
                                   '909168')  # 用户中心>>软件ID 生成一个替换 96001
    print(chaojiying.PostPic(
        imgByte, codeType))  # 1902 验证码类型  官方网站>>价格体系 3.4+版 print 后要加()
    json = chaojiying.PostPic(imgByte, codeType)
    result = json['pic_str']
    print('result:%s' % result)
    return result
        r'input type="hidden" name="__VIEWSTATEGENERATOR" id="__VIEWSTATEGENERATOR" value="(.*?)" />',
        page_text, re.I)[0]
    print(VIEWSTATE, __VIEWSTATEGENERATOR)

    #解析验证码图片img中的src属性
    tree = etree.HTML(page_text)
    code_img_url = 'https://so.gushiwen.cn/' + tree.xpath(
        '//*[@id="imgCode"]/@src')[0]
    img_data = session.get(url=code_img_url, headers=headers).content
    #验证码保存到本地
    with open('./code.jpg', 'wb') as fp:
        fp.write(img_data)

    #调用打码平台的示例程序进行验证码图片数据识别
    #输入超级鹰账号密码
    chaojiying = Chaojiying_Client('xxx', 'xxx',
                                   '96001')  # 用户中心>>软件ID 生成一个替换 96001
    im = open('code.jpg', 'rb').read()  # 本地图片文件路径 来替换 a.jpg 有时WIN系统须要//
    code_info = chaojiying.PostPic(im, 1902)
    print(code_info)
    #小写改成大写
    code = code_info['pic_str'].upper()
    print(code)

    #实际登录操作
    login_url = 'https://so.gushiwen.cn/user/login.aspx?from=http%3a%2f%2fso.gushiwen.cn%2fuser%2fcollect.aspx'
    data = {
        '__VIEWSTATE': VIEWSTATE,
        '__VIEWSTATEGENERATOR': __VIEWSTATEGENERATOR,
        'from': 'http://so.gushiwen.cn/user/collect.aspx',
        'email': 'xxx.com',  #使用自己账号
        'pwd': 'xxxx',  #使用自己密码
Exemple #3
0
    int(location['x']),
    int(location['y']),
    int(location['x'] + size['width']),
    int(location['y'] + size['height']),
)
print(rangle)

i = Image.open('./aa.png')
code_img_name = './code.png'
#crop 根据指定区域进行图片裁剪
frame = i.crop(rangle)
frame.save(code_img_name)

#将验证码图片提交给超级鹰进行识别
#替换自己账号密码
chaojiying = Chaojiying_Client('xxx', 'xxx',
                               '96001')  # 用户中心>>软件ID 生成一个替换 96001
im = open('code.png', 'rb').read()  # 本地图片文件路径 来替换 a.jpg 有时WIN系统须要//
result = chaojiying.PostPic(im, 9004)  #['pic_str'] #9004 验证码格式
print(result)
result = result['pic_str']
pos_list = []
if '|' in result:
    list_1 = result.split('|')
    count_1 = len(list_1)
    for i in range(count_1):
        xy_list = []
        x = int(list_1[i].split(',')[0])
        y = int(list_1[i].split(',')[1])
        xy_list.append(x)
        xy_list.append(y)
        pos_list.append(xy_list)
def getCodeText(filename, codeType):
    chaojiying = Chaojiying_Client('Echoyay', '0822CNTTge',
                                   '914431')  # 用户中心>>软件ID 生成一个替换 96001
    im = open(filename, 'rb').read()  # 本地图片文件路径 来替换 a.jpg 有时WIN系统须要//
    return chaojiying.PostPic(im, codeType)
print(rangle)
'''至此验证码图片区域确定'''

#裁剪验证码区域
#实例化Image对象
i = Image.open('./a.png')
code_img_name = './code.png'
#crop根据指定区域进行图片裁剪
frame = i.crop(rangle)
frame.save(code_img_name)

#因为显示偏移导致截图时调整了页面,在截图操作之后还需要将页面调回,否则定位不到原位置
bro.execute_script('document.body.style.zoom="1"')

#识别图片
chaojiying = Chaojiying_Client('Echoyay', '0822CNTTge',
                               '914431')  # 用户中心>>软件ID 生成一个替换 96001
im = open('code.png', 'rb').read()  # 本地图片文件路径 来替换 a.jpg 有时WIN系统须要//
result = chaojiying.PostPic(im, 9004)['pic_str']
print('result:', result)
all_list = []  #要存储即将被点击的点的坐标,存储形式  [[x1,y1],[x2,y2]]
if '|' in result:
    list_1 = result.split('|')
    count_1 = len(list_1)
    for i in range(count_1):
        xy_list = []
        x = int(list_1[i].split(',')[0])
        y = int(list_1[i].split(',')[1])
        xy_list.append(x)
        xy_list.append(y)
        all_list.append(xy_list)
else: