gpt4 book ai didi

Python 通过打码平台实现验证码的实现

转载 作者:qq735679552 更新时间:2022-09-28 22:32:09 26 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章Python 通过打码平台实现验证码的实现由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

 在爬虫时,经常遇到登录需要验证码的情况,简单的验证码可以自己解决,复制的验证码需要借助机器学习,有一定的难度。还有一个简单的方案就是采用付费的打码平台.

比如r若快(http://www.ruokuai.com/client),还有云打码平台(http://www.yundama.com/price.html) 。

下面以r若快为例介绍打码平台的思路:

r若快平台需要注册两个用户,一个是普通用户,一个开发者用户, 。

Python 通过打码平台实现验证码的实现

Python 通过打码平台实现验证码的实现

Python 通过打码平台实现验证码的实现

Python 通过打码平台实现验证码的实现

1、首先验证码截图,就是截取网站上登录页面的验证码图片并保存到本地 。

2、调用打码平台的接口把验证码图片发送到打码平台并获取到验证码结果.

具体代码如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#!/usr/bin/env python
# coding:utf-8
 
import requests
from hashlib import md5
 
 
class rclient( object ):
 
   def __init__( self , username = 'shaoks123' , password = '123456' , soft_id = '113452' , soft_key = 'c0d07d796c8e470c92a126df60d61794' ):
     self .username = username
     # self.password = md5(password).hexdigest()
     self .password = md5(password.encode( "utf-8" )).hexdigest()
     self .soft_id = soft_id
     self .soft_key = soft_key
     self .base_params = {
       'username' : self .username,
       'password' : self .password,
       'softid' : self .soft_id,
       'softkey' : self .soft_key,
     }
     self .headers = {
       'connection' : 'keep-alive' ,
       'expect' : '100-continue' ,
       'user-agent' : 'ben' ,
     }
 
   def rk_create( self , im, im_type, timeout = 60 ):
     """
     im: 图片字节
     im_type: 题目类型
     """
     params = {
       'typeid' : im_type,
       'timeout' : timeout,
     }
     params.update( self .base_params)
     files = { 'image' : ( 'a.jpg' , im)}
     r = requests.post( 'http://api.ruokuai.com/create.json' , data = params, files = files, headers = self .headers)
     return r.json()
 
   def rk_report_error( self , im_id):
     """
     im_id:报错题目的id
     """
     params = {
       'id' : im_id,
     }
     params.update( self .base_params)
     r = requests.post( 'http://api.ruokuai.com/reporterror.json' , data = params, headers = self .headers)
     return r.json()
 
   def test( self ,imagefile,im_type = 1030 ):
     # im = open('e:\python36_crawl\veriycode\code\code_823.png', 'rb').read()
     im = open (imagefile, 'rb' ).read()
     result = self .rk_create(im, im_type)
     print (result[ 'result' ])
     return result[ 'result' ]
 
 
# if __name__ == '__main__':
#   rc = rclient()
#   im = open('e:\python36_crawl\veriycode\code\code_823.png', 'rb').read()
#   result = rc.rk_create(im, 1030)
#   print(result['result'])

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我.

原文链接:https://www.cnblogs.com/shaosks/p/9816106.html 。

最后此篇关于Python 通过打码平台实现验证码的实现的文章就讲到这里了,如果你想了解更多关于Python 通过打码平台实现验证码的实现的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com