1. 超级鹰介绍
打开http://www.chaojiying.com/user/注册用户,生成软件ID
下载python的demo文件
查看打码类型
2. 使用方法
from chaojiying import Chaojiying
CHAOJIYING_USERNAME = 'xxxxxx' # 账号
CHAOJIYING_PASSWORD = '123456' # 密码
CHAOJIYING_SOFT_ID = 894611 # 生成的唯一key
CHAOJIYING_KIND = 9004 # 题型
cjy = Chaojiying(CHAOJIYING_USERNAME, CHAOJIYING_PASSWORD, CHAOJIYING_SOFT_ID) # 创建实例
result = cjy.post_pic(bytes_array.getvalue(), CHAOJIYING_KIND) # 上传图片
3. 逻辑实现
(1)获取需要识别的图片
在获取需要的识别的图片时,一般需要将图片以及文字提示,通过selenium的截图方法,获取到所需的信息。
self.browser.save_screenshot('aa.png') # 先把整个屏幕截图
element = self.browser.find_element_by_xpath('/html/body/div[2]/div/div[2]/div[2]/div[3]/div/div[2]/div[3]/div/div') # 获取图片所在的div
left = element.location['x']
top = element.location['y'] - 100
right = element.location['x'] + element.size['width']
bottom = element.location['y'] + element.size['height']
im = Image.open('aa.png')
captcha = im.crop((left, top, right, bottom)) # 根据div的长宽在整个屏幕上面截图
captcha.save('captcha.png')
2.识别需要点击的坐标
把需要识别的图片和提示一起上传,返回坐标
result = self.chaojiying.post_pic(bytes_array.getvalue(), CHAOJIYING_KIND) # 提交图片进行验证
groups = result.get('pic_str').split('|') # 对返回的数据进行解析 获取x坐标和y坐标
locations = [[int(number) for number in group.split(',')] for group in groups]
3.根据坐标顺序依次页面进行点击
根据x和y坐标依次点击图片当中的文字,self.get_touclick_element() 获取图片的位置
move_to_element_with_offset 将鼠标移动到距某个元素多少距离的位置
for location in locations:
ActionChains(self.browser).move_to_element_with_offset(self.get_touclick_element(), location[0],location[1]).click().perform()
time.sleep(1)
详情参考:http://www.chaojiying.com/price.html#table-item1
实例一:简书 9004
实例二:12306
网友评论