Web爬虫中验证码识别 借助打码平台进行验证码识别进行模拟登录

鳄鱼君

发表文章数:642

Vieu四代商业主题

高扩展、安全、稳定、响应式布局多功能模板。

¥69 现在购买
首页 » Python » Web爬虫中验证码识别 借助打码平台进行验证码识别进行模拟登录

爬虫识别验证码,需要借助打码平台,准确率也不错。这里推荐几个常用的打码平台:云打码、超级鹰(推荐)、打码兔等等。这篇文章主要介绍超级鹰,因为比较便宜,1块钱就可以玩很多次了。那么先来介绍一下这个超级鹰如何使用吧!

你可以直接百度搜索超级鹰,第一个就是。需要注册用户,然后冲个1块钱,1元1000积分,一般的验证码识别在20到40左右。可以先看一些它的价格体系:https://www.chaojiying.com/price.html。在你的用户首页,点击软件ID,并生成一个软件ID,需要填写软件名称,软件KEY不需要管,软件说明无所谓,我们需要使用的就是软件ID

Web爬虫中验证码识别 借助打码平台进行验证码识别进行模拟登录

然后点击顶部导航中的开发文档,找到Python代码并点击下载,然后解压,里面有个chaojiying.py文件,内容如下:

#!/usr/bin/env python
# coding:utf-8

import requests
from hashlib import md5

class Chaojiying_Client(object):

    def __init__(self, username, password, soft_id):
        self.username = username
		password =  password.encode('utf8')
        self.password = md5(password).hexdigest()
        self.soft_id = soft_id
        self.base_params = {
            'user': self.username,
            'pass2': self.password,
            'softid': self.soft_id,
        }
        self.headers = {
            'Connection': 'Keep-Alive',
            'User-Agent': 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0)',
        }

    def PostPic(self, im, codetype):
        """
        im: 图片字节
        codetype: 题目类型 参考 http://www.chaojiying.com/price.html
        """
        params = {
            'codetype': codetype,
        }
        params.update(self.base_params)
        files = {'userfile': ('ccc.jpg', im)}
        r = requests.post('http://upload.chaojiying.net/Upload/Processing.php', data=params, files=files, headers=self.headers)
        return r.json()

    def ReportError(self, im_id):
        """
        im_id:报错题目的图片ID
        """
        params = {
            'id': im_id,
        }
        params.update(self.base_params)
        r = requests.post('http://upload.chaojiying.net/Upload/ReportError.php', data=params, headers=self.headers)
        return r.json()
if __name__ == '__main__':
    chaojiying = Chaojiying_Client('超级鹰用户名', '超级鹰用户名的密码', '96001')#用户中心>>软件ID 生成一个替换 96001
    im = open('a.jpg', 'rb').read() #本地图片文件路径 来替换 a.jpg 有时WIN系统须要//
    print chaojiying.PostPic(im, 1902) #1902 验证码类型  官方网站>>价格体系 3.4+版 print 后要加()

代码写得很详细了,我们使用的话可以将它封装到一个函数中去。鳄鱼君Ba这里使用的是jupyter,将它封装到transform_code_img函数中去便于我们使用,使用的时候需要用户名、密码、软件ID和验证码类型,验证码类型需要到介个体系里面参考。

#imgPath验证码图片 imgType验证码类型
def transform_code_img(imgPath,imgType):
    chaojiying = Chaojiying_Client('用户名', '密码', '软件ID') 
    im = open(imgPath, 'rb').read() 
    return chaojiying.PostPic(im, imgType)['pic_str'] #pic_str是识别后的结果

如果想要验证一下效果,可以识别一下默认的a.jpg图像,这个是纯数字,只需要输入对应的验证类型既可以,正确率肯定比我们PIL识别高多了,自己尝试。

未经允许不得转载:作者:鳄鱼君, 转载或复制请以 超链接形式 并注明出处 鳄鱼君
原文地址:《Web爬虫中验证码识别 借助打码平台进行验证码识别进行模拟登录》 发布于2020-05-08

分享到:
赞(0) 赏杯咖啡

评论 抢沙发

3 + 9 =


文章对你有帮助可赏作者一杯咖啡

支付宝扫一扫打赏

微信扫一扫打赏

Vieu4.6主题
专业打造轻量级个人企业风格博客主题!专注于前端开发,全站响应式布局自适应模板。
切换注册

登录

忘记密码 ?

您也可以使用第三方帐号快捷登录

Q Q 登 录
微 博 登 录
切换登录

注册