博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
代理 IP 云打码平台的使用
阅读量:7055 次
发布时间:2019-06-28

本文共 6547 字,大约阅读时间需要 21 分钟。

代理ip

  • 获取代理ip的网站:
    • 快代理
    • 西祠代理
    • www.goubanjia.com
#代理ipimport requestsheaders = {    'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36',}
url = 'https://www.baidu.com/s?wd=ip'page_text = requests.get(url=url,headers=headers,proxies={'https':'134.209.13.16:8080'}).textwith open('./ip.html','w',encoding='utf-8') as fp:    fp.write(page_text)
https_proxies = [    {'https':'134.209.13.16:8080'},    {'https':'134.209.13.14:8080'},    {'https':'134.209.13.19:8080'}]http_proxies = [    {'http':'134.209.13.16:8080'},    {'http':'134.209.13.14:8080'},    {'http':'134.209.13.19:8080'}]
#获取请求的urlurl = 'https://www.baidu.com/s?wd=ip'response = requests.get(url=url,headers=headers)response.url.split(':')[0]

云打码平台的使用

  • 官网url:http://www.yundama.com/demo.html
  • 注册:
    • 1.普通用户
    • 2.开发者用户
  • 登录平台:
    • 1.普通用户:
      • 1.查询余额(题分)
    • 2.开发者用户:
      • 1.创建一个软件:软件的id和通讯秘钥后期在编码时会被用到
      • 2.下载示例代码:PythonHTTP
        • 开发文档-》下载最新的DLL文档-》PythonHTTP
  • 编码:
import requestsimport jsonimport time
class YDMHttp:    apiurl = 'http://api.yundama.com/api.php'    username = ''    password = ''    appid = ''    appkey = ''    def __init__(self, username, password, appid, appkey):        self.username = username          self.password = password        self.appid = str(appid)        self.appkey = appkey    def request(self, fields, files=[]):        response = self.post_url(self.apiurl, fields, files)        response = json.loads(response)        return response        def balance(self):        data = {'method': 'balance', 'username': self.username, 'password': self.password, 'appid': self.appid, 'appkey': self.appkey}        response = self.request(data)        if (response):            if (response['ret'] and response['ret'] < 0):                return response['ret']            else:                return response['balance']        else:            return -9001        def login(self):        data = {'method': 'login', 'username': self.username, 'password': self.password, 'appid': self.appid, 'appkey': self.appkey}        response = self.request(data)        if (response):            if (response['ret'] and response['ret'] < 0):                return response['ret']            else:                return response['uid']        else:            return -9001    def upload(self, filename, codetype, timeout):        data = {'method': 'upload', 'username': self.username, 'password': self.password, 'appid': self.appid, 'appkey': self.appkey, 'codetype': str(codetype), 'timeout': str(timeout)}        file = {'file': filename}        response = self.request(data, file)        if (response):            if (response['ret'] and response['ret'] < 0):                return response['ret']            else:                return response['cid']        else:            return -9001    def result(self, cid):        data = {'method': 'result', 'username': self.username, 'password': self.password, 'appid': self.appid, 'appkey': self.appkey, 'cid': str(cid)}        response = self.request(data)        return response and response['text'] or ''    def decode(self, filename, codetype, timeout):        cid = self.upload(filename, codetype, timeout)        if (cid > 0):            for i in range(0, timeout):                result = self.result(cid)                if (result != ''):                    return cid, result                else:                    time.sleep(1)            return -3003, ''        else:            return cid, ''    def report(self, cid):        data = {'method': 'report', 'username': self.username, 'password': self.password, 'appid': self.appid, 'appkey': self.appkey, 'cid': str(cid), 'flag': '0'}        response = self.request(data)        if (response):            return response['ret']        else:            return -9001    def post_url(self, url, fields, files=[]):        for key in files:            files[key] = open(files[key], 'rb');        res = requests.post(url, files=files, data=fields)        return res.text
# 普通用户用户名username    = 'bobo328410948'# 密码password    = 'bobo328410948'                            # 软件ID,开发者分成必要参数。登录开发者后台【我的软件】获得!appid       = 6003                                     # 软件密钥,开发者分成必要参数。登录开发者后台【我的软件】获得!appkey      = '1f4b564483ae5c907a1d34f8e2f2776c'    # 图片文件filename    = 'getimage.jpg'                        # 验证码类型,# 例:1004表示4位字母数字,不同类型收费不同。请准确填写,否则影响识别率。在此查询所有类型 http://www.yundama.com/price.htmlcodetype    = 1004# 超时时间,秒timeout     = 20                                    # 检查if (username == 'username'):    print('请设置好相关参数再测试')else:    # 初始化    yundama = YDMHttp(username, password, appid, appkey)    # 登陆云打码    uid = yundama.login();    print('uid: %s' % uid)    # 查询余额    balance = yundama.balance();    print('balance: %s' % balance)    # 开始识别,图片路径,验证码类型ID,超时时间(秒),识别结果    cid, result = yundama.decode(filename, codetype, timeout);    print('cid: %s, result: %s' % (cid, result))
#将验证码识别的操作封装成一个函数def getCodeText(userName,passWord,imgPath,codeType):    result = None    # 普通用户用户名    username    = userName    # 密码    password    = passWord                                # 软件ID,开发者分成必要参数。登录开发者后台【我的软件】获得!    appid       = 6003                                         # 软件密钥,开发者分成必要参数。登录开发者后台【我的软件】获得!    appkey      = '1f4b564483ae5c907a1d34f8e2f2776c'        # 图片文件    filename    = imgPath                           # 验证码类型,# 例:1004表示4位字母数字,不同类型收费不同。请准确填写,否则影响识别率。在此查询所有类型 http://www.yundama.com/price.html    codetype    = codeType    # 超时时间,秒    timeout     = 20                                        # 检查    if (username == 'username'):        print('请设置好相关参数再测试')    else:        # 初始化        yundama = YDMHttp(username, password, appid, appkey)        # 登陆云打码        uid = yundama.login();        print('uid: %s' % uid)        # 查询余额        balance = yundama.balance();        print('balance: %s' % balance)        # 开始识别,图片路径,验证码类型ID,超时时间(秒),识别结果        cid, result = yundama.decode(filename, codetype, timeout);        print('cid: %s, result: %s' % (cid, result))    return result
from lxml import etreefrom urllib import requesturl = 'http://www.renren.com/'headers = {    'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36'}page_text = requests.get(url=url,headers=headers).text#解析验证码图片tree = etree.HTML(page_text)code_img_url = tree.xpath('//*[@id="verifyPic_login"]/@src')[0]request.urlretrieve(code_img_url,'./code.jpg')code_text = getCodeText('账号','密码','./code.jpg',2004)print(code_text)

转载于:https://www.cnblogs.com/zhang-zi-yi/p/10749376.html

你可能感兴趣的文章
潍坊SEO教程之网站关键词密度
查看>>
HTTPS原理和CA证书申请(满满的干货)
查看>>
跨交换机实现VLAN
查看>>
mysql客户端的使用
查看>>
AIX创建删除page space
查看>>
scala 中的 日期格式化
查看>>
php面向对象
查看>>
Linux基础:日志管理
查看>>
Java中的多线程你只要看这一篇就够了
查看>>
第二章习题答案
查看>>
关于硬盘的一切!
查看>>
如何解决90%的报表设计难题?300张报表模板任君挑选
查看>>
EL函数库(由JSTL提供的)
查看>>
vagrant学习笔记 - provision
查看>>
PowerDesigner中pdm物理模型中 Name和Comment相互转换
查看>>
web.xml详解
查看>>
刘硕琛_下一代企业安全管理
查看>>
备战网络工程师认证考试:历年真题合集
查看>>
xargs
查看>>
RelativeLayout相对布局
查看>>