美文网首页
爬虫 之 打码平台

爬虫 之 打码平台

作者: 煎炼 | 来源:发表于2018-12-19 23:09 被阅读0次

爬虫验证码中还是有很多的特别难破解的,比如BT的12306

1-1

哈哈~,是不是被难倒了,没关系,这次说的是打码平台,可以有效解决这类问题。

这次主要说说超级鹰:http://www.chaojiying.com/,进去之后呢,首先要找到开发文档

1-2

下载即可,里面的内容还是很简洁和容易理解的,这里就不详细说明了,下载完后之后把超级鹰开发文档和你的代码放在同级目录下,然后就开始进入正题吧。

以这个url为例:https://kyfw.12306.cn/otn/login/init

1-3

打开大概就是这个样子,我们要先获取到验证码图片

browser = webdriver.Chrome()

browser.get(url)

time.sleep(15)

img = browser.find_element_by_class_name('touclick-image')

延时稍微长了一点,为了防止验证码图片加载不出来,然后我们需要这个验证码图片的左上角和右下角的坐标。

left = img.location['x']#验证码图片左上角横坐标

top    = img.location['y']#验证码图片左上角纵坐标

right  = left + img.size['width']#验证码图片右下角横坐标

bottom = top + img.size['height']#验证码图片右下角纵坐标

将验证码图片保存成二进制文件,因为超级鹰那边验证需要传入验证码图片的二进制数据。

#页面快照

screenshot = browser.get_screenshot_as_png()

#打开快照文件

screenshot = Image.open(BytesIO(screenshot))

#截取验证码图片

captcha = screenshot.crop((left, top, right, bottom))

captcha.save("./name.png")

bytes_array = BytesIO()

#图片二进制

captcha.save(bytes_array,format='PNG')

这一步有点看不懂的可以看我的另一片文章 爬虫 之 验证码(一),里面比较详细一点。

然后超级鹰要登场了

chaojiying = Chaojiying(账号, 密码, id)      #id 请参考图片1-4

result = chaojiying.post_pic(bytes_array.getvalue(), 验证码类型编号)    #二进制数据和类型编号,类型编号请参考图片1-5

1-4 1-5

最后就是处理一下超级鹰返回的结果,模拟点击即可

#验证码结果进行解析

groups = result.get('pic_str').split('|')

#遍历验证结果,再用逗号切分变量后的验证结果,转换成整数

locations = [[int(number)for numberin group.split(',')]for groupin groups]

for locationin locations:

    print(location)

    # 当前页面点击,move_to_element_with_offset:把鼠标移动到某个偏移量   的   位   置,     相对于图片左上角的位置,perform()连续执行

    ActionChains(browser).move_to_element_with_offset(img, location[0],location[1]).click().perform()

    time.sleep(1)

最后附上源码和运行结果

import time

from seleniumimport webdriver

from PILimport Image

from ioimport BytesIO

from selenium.webdriverimport ActionChains

from chaojiyingimport Chaojiying

EMAIL ='账号'

PASSWORD ='密码'

CHAOJIYING_SOFT_ID ="id"

CHAOJIYING_KIND =9004

#账号、密码、解码类型编号

chaojiying = Chaojiying(EMAIL, PASSWORD, CHAOJIYING_SOFT_ID)

url ='https://kyfw.12306.cn/otn/login/init'

browser = webdriver.Chrome()

browser.get(url)

time.sleep(15)

img = browser.find_element_by_class_name('touclick-image')

left  = img.location['x']#验证码图片左上角横坐标

top    = img.location['y']#验证码图片左上角纵坐标

right  = left + img.size['width']#验证码图片右下角横坐标

bottom = top + img.size['height']#验证码图片右下角纵坐标

print(left, top, right, bottom)

#页面快照

screenshot = browser.get_screenshot_as_png()

#打开快照文件

screenshot = Image.open(BytesIO(screenshot))

#截取验证码图片

captcha = screenshot.crop((left, top, right, bottom))

captcha.save("./name.png")

bytes_array = BytesIO()

#图片二进制

captcha.save(bytes_array,format='PNG')

result = chaojiying.post_pic(bytes_array.getvalue(), CHAOJIYING_KIND)

#验证码结果进行解析

groups = result.get('pic_str').split('|')

#遍历验证结果,再用逗号切分变量后的验证结果,转换成整数

locations = [[int(number)for numberin group.split(',')]for groupin groups]

for locationin locations:

    print(location)

    # 当前页面点击,move_to_element_with_offset:把鼠标移动到某个偏移量的位置,相对       于图片左上角的位置,perform()连续执行

    ActionChains(browser).move_to_element_with_offset(img, location[0],location[1]).click().perform()

    time.sleep(1)

1-5

成功率还是蛮高的,本篇文章到此结束,希望看到这篇文章的人有所收获。

相关文章

  • Python爬虫第七天:多线程爬虫|打码平台|Scrapy框架

    内容简述: 一:打码平台 二:多线程爬虫 三:Scrapy框架 一:打码平台使用 云打码htt...

  • 爬虫 之 打码平台

    爬虫验证码中还是有很多的特别难破解的,比如BT的12306 哈哈~,是不是被难倒了,没关系,这次说的是打码平台,可...

  • 优质的打码平台哪个好

    优质的打码平台哪个好 打码平台,优质的打码平台哪个好?相信这是大家共同疑惑的问题。今天,就让我来告诉大家,打码平台...

  • 分享一个正规的打码网站

    分享一个正规的打码网站 打码平台经验分享,打码平台,打码平台哪个好?这是大家共同疑惑的问题。今天,就让我来告诉你,...

  • Python爬虫 | 云打码平台识别验证码

    相关的门户网站在进行登录的时候,如果用户连续登录的次数超过3次或者5次的时候,就会在登录页中动态生成验证码。通过验...

  • Python使用打码平台进行识别验证码

    打码平台介绍 一般使用超级鹰或打码兔的打码平台。 超级鹰介绍 打开http://www.chaojiying.co...

  • 打码平台哪个好

    打码平台哪个好 打码平台应该如何选择呢,小编在网上搜索了很久,终于找了一款叫答题吧打码平台的软件,于是小编...

  • 如何判断打码平台哪个好

    如何判断打码平台哪个好 要怎么判断打码平台哪个好呢 验证码成了很多平台获取资源的途径,也是众多平台保护自己的一个门...

  • 17.验证码处理

    验证码处理 学习目标 了解 验证码的相关知识 掌握 图片识别引擎的使用 了解 常见的打码平台 掌握 通过打码平台处...

  • 免费自动打码软件口碑怎么样

    免费自动打码软件口碑怎么样 在以往用户很难寻找到真正的准确率较高的打码平台平台,我用过几款打码平台都不是很理想,识...

网友评论

      本文标题:爬虫 之 打码平台

      本文链接:https://www.haomeiwen.com/subject/nrajkqtx.html