万能ck提取登录工具,小红书抖音快手微博,多账号登录实现矩阵【python】

216 阅读1分钟

下载地址:www.pan38.com/dow/share.p… 提取密码:2881

这个框架演示了多平台账号管理的基本结构,包含cookie持久化和账号矩阵管理功能。实际使用时需要注意:1.各平台加密逻辑不同 2.需遵守平台服务条款 3.建议添加异常处理和日志记录。完整实现还需要解决验证码、IP限制等问题。

源码分享【仅供学习】

import requests import json import os from fake_useragent import UserAgent from typing import Dict, Optional

class CookieManager: """Cookie管理基类""" def init(self): self.session = requests.Session() self.ua = UserAgent()

def save_cookies(self, platform: str, username: str):
    os.makedirs('cookies', exist_ok=True)
    with open(f'cookies/{platform}_{username}.json', 'w') as f:
        json.dump(self.session.cookies.get_dict(), f)
        
def load_cookies(self, platform: str, username: str) -> bool:
    try:
        with open(f'cookies/{platform}_{username}.json', 'r') as f:
            cookies = json.load(f)
            self.session.cookies.update(cookies)
            return True
    except:
        return False

class WeiboLogin(CookieManager): """微博登录实现""" def init(self): super().init() self.login_url = "passport.weibo.cn/sso/login"

def login(self, username: str, password: str) -> bool:
    headers = {
        'User-Agent': self.ua.mobile,
        'Referer': 'https://passport.weibo.cn/signin/login'
    }
    data = {
        'username': username,
        'password': password,
        'savestate': '1'
    }
    resp = self.session.post(self.login_url, data=data, headers=headers)
    if resp.json().get('retcode') == 20000000:
        self.save_cookies('weibo', username)
        return True
    return False

class DouyinLogin(CookieManager): """抖音登录实现""" def init(self): super().init() self.login_url = "www.douyin.com/login/"

def login(self, username: str, password: str) -> bool:
    # 实际实现需要处理抖音的加密逻辑
    # 这里仅作演示
    print("抖音登录需要处理复杂加密流程")
    return False

class AccountMatrix: """账号矩阵管理器""" def init(self): self.accounts = { 'weibo': [], 'douyin': [] }

def add_account(self, platform: str, username: str, password: str):
    self.accounts[platform].append({
        'username': username,
        'password': password
    })
    
def batch_login(self):
    results = {}
    for platform, accounts in self.accounts.items():
        results[platform] = []
        for acc in accounts:
            if platform == 'weibo':
                client = WeiboLogin()
            elif platform == 'douyin':
                client = DouyinLogin()
            else:
                continue
                
            if client.load_cookies(platform, acc['username']):
                status = "cached"
            else:
                status = "success" if client.login(
                    acc['username'], acc['password']
                ) else "failed"
                
            results[platform].append({
                'username': acc['username'],
                'status': status
            })
    return results

if name == "main": matrix = AccountMatrix() # 添加测试账号 matrix.add_account('weibo', 'test1@example.com', 'password123') matrix.add_account('weibo', 'test2@example.com', 'password456')

# 执行批量登录
results = matrix.batch_login()
print(json.dumps(results, indent=2))