ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

DecryptLogin:python模拟登陆模块

2022-11-02 16:52:04  阅读:378  来源: 互联网

标签:python 登陆 验证码 图片 代理 移动


DecryptLogin:python模拟登陆模块

一、简单登陆
infos_return:返回一个字典对象,包含用户信息 session:会话对象 所有网站接口都包含以下参数: username: 登录用户名 password: 登录密码 mode:移动端:mobile’和PC端:mode=‘pc’ crackvcFunc: 支持用户自定义一个验证码识别函数, 该函数传入验证码图片路径, 并返回识别结果 proxies: 模拟登录的过程中使用指定的代理服务器, 代理支持的格式同: https://requests.readthedocs.io/en/master/user/advanced/#proxies

二、验证码处理
需要用到python图像处理库——PIL 并定义验证码识别函数。

def crackvcFunc(imagepath):
    # 打开验证码图片
    img = Image.open(imagepath)
    # 识别验证码图片
    result = IdentifyAPI(img)
    # 返回识别结果
    return result
其中IdentifyAPI可选择识别验证码的接口,我选用的是百度ai通用文字识别的接口,,修改后的代码如下:

def get_access_token(client_id,client_secret):
    host = https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=+ client_id + &client_secret= + client_secret
    response = requests.get(host)
    res = response.json()
    if response:
        return res[access_token]

def crackvcFunc(imagepath):
    request_url = "https://aip.baidubce.com/rest/2.0/ocr/v1/general_basic"
    # 二进制方式打开图片文件
    f = open(imagepath, rb)
    img = base64.b64encode(f.read())
    params = {
          
   "image":img}
    access_token = get_access_token(client_id,client_secret)
    request_url = request_url + "?access_token=" + access_token
    headers = {
          
   content-type: application/x-www-form-urlencoded}
    response = requests.post(request_url, data=params, headers=headers)
    if response:
        res = response.json()
        return res[words_result][0][words]
登陆成功

[INFO]: Account -> 18**********5, login successfully...
[Finished in 5.1s]
三、添加代理
proxies = {
          
   https: 127.0.0.1:1080}
infos_return, session = lg.zhihu(username=Your Username, password=Your Password, proxies=proxies)
四、保存cookies
为安全起见, DecryptLogin不考虑提供自动保存cookies并每次验证其是否已经过期的功能。

from DecryptLogin.utils.cookies import *

def save_cookies(url, cookiespath):
    session = requests.Session()
    for i in url:
        session.get(i)
        saveSessionCookies(session=session, cookiespath=cookiespath)
五、载入cookies
def load_cookies(cookiespath):
    session = requests.Session()
    infos_return, session = loadSessionCookies(session=session, cookiespath=cookiespath)
    return infos_return, session
最后主函数:

def main():
    lg = login.Login()#登陆
    client_id = GoH*******CtNy #验证码识别API接口id
    client_secret = xCgB*********cytKDCK #验证码识别API接口密码
    cookiespath = c:/****#cookies保存路径
    username = username
    password = password
    infos_return, session = lg.weibo(username, password, pc) #登陆
    save_cookies(infos_return[crossDomainUrlList], cookiespath)
    infos_return, session = load_cookies(cookiespath)

标签:python,登陆,验证码,图片,代理,移动
来源:

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有