抖音ck提取工具,快手小红书微博哔哩哔哩cookie提取登录软件,python框架

简介: 这个框架提供了完整的Cookie提取功能,支持抖音、快手、小红书、微博和哔哩哔哩平台。主要特点包括

下载地址:https://www.pan38.com/share.php?code=JCnzE 提取密码:1112

这个框架提供了完整的Cookie提取功能,支持抖音、快手、小红书、微博和哔哩哔哩平台。主要特点包括:1) 模块化设计,易于扩展新平台;2) 自动验证Cookie有效性;3) 本地SQLite数据库存储历史记录;4) 支持从浏览器直接提取Cookie。使用时需要安装browser-cookie3和requests库。

import os
import json
import sqlite3
import browser_cookie3
from typing import Dict, Optional
from datetime import datetime
import requests
from urllib.parse import urlparse

class BaseCookieExtractor:
"""基础Cookie提取类"""
def init(self):
self.platform_name = "base"
self.required_cookies = []
self.domain = ""

def extract(self) -> Dict[str, str]:
    """提取Cookies的基类方法"""
    raise NotImplementedError

def validate_cookies(self, cookies: Dict[str, str]) -> bool:
    """验证Cookies是否有效"""
    if not all(k in cookies for k in self.required_cookies):
        return False
    return True

def test_cookies(self, cookies: Dict[str, str]) -> bool:
    """测试Cookies是否有效"""
    raise NotImplementedError

class DouyinCookieExtractor(BaseCookieExtractor):
"""抖音Cookie提取器"""
def init(self):
super().init()
self.platform_name = "douyin"
self.required_cookies = ["sessionid", "odin_tt"]
self.domain = ".douyin.com"

def extract(self) -> Dict[str, str]:
    cookies = {}
    try:
        cj = browser_cookie3.load(domain_name=self.domain)
        for cookie in cj:
            if cookie.domain.endswith(self.domain):
                cookies[cookie.name] = cookie.value
    except Exception as e:
        print(f"提取抖音Cookie失败: {e}")
    return cookies

def test_cookies(self, cookies: Dict[str, str]) -> bool:
    if not self.validate_cookies(cookies):
        return False
    try:
        headers = {
            "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36",
            "Cookie": "; ".join([f"{k}={v}" for k, v in cookies.items()])
        }
        response = requests.get(
            "https://www.douyin.com/aweme/v1/web/aweme/post/",
            headers=headers,
            timeout=10
        )
        return response.status_code == 200
    except Exception:
        return False

class KuaishouCookieExtractor(BaseCookieExtractor):
"""快手Cookie提取器"""
def init(self):
super().init()
self.platform_name = "kuaishou"
self.required_cookies = ["did", "kuaishou.server.web_ph"]
self.domain = ".kuaishou.com"

def extract(self) -> Dict[str, str]:
    cookies = {}
    try:
        cj = browser_cookie3.load(domain_name=self.domain)
        for cookie in cj:
            if cookie.domain.endswith(self.domain):
                cookies[cookie.name] = cookie.value
    except Exception as e:
        print(f"提取快手Cookie失败: {e}")
    return cookies

def test_cookies(self, cookies: Dict[str, str]) -> bool:
    if not self.validate_cookies(cookies):
        return False
    try:
        headers = {
            "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36",
            "Cookie": "; ".join([f"{k}={v}" for k, v in cookies.items()])
        }
        response = requests.get(
            "https://www.kuaishou.com/graphql",
            headers=headers,
            timeout=10
        )
        return response.status_code == 200
    except Exception:
        return False

class CookieManager:
"""Cookie管理器"""
def init(self):
self.extractors = {
"douyin": DouyinCookieExtractor(),
"kuaishou": KuaishouCookieExtractor(),
"xiaohongshu": XiaoHongShuCookieExtractor(),
"weibo": WeiboCookieExtractor(),
"bilibili": BilibiliCookieExtractor()
}
self.cookie_db = "cookies.db"
self._init_db()

def _init_db(self):
    """初始化数据库"""
    conn = sqlite3.connect(self.cookie_db)
    cursor = conn.cursor()
    cursor.execute("""
    CREATE TABLE IF NOT EXISTS cookies (
        platform TEXT,
        cookies TEXT,
        timestamp DATETIME,
        valid INTEGER,
        PRIMARY KEY (platform, timestamp)
    )
    """)
    conn.commit()
    conn.close()

def extract_all(self):
    """提取所有平台的Cookies"""
    results = {}
    for platform, extractor in self.extractors.items():
        cookies = extractor.extract()
        is_valid = extractor.test_cookies(cookies)
        results[platform] = {
            "cookies": cookies,
            "valid": is_valid
        }
        self._save_cookies(platform, cookies, is_valid)
    return results

def _save_cookies(self, platform: str, cookies: Dict[str, str], valid: bool):
    """保存Cookies到数据库"""
    conn = sqlite3.connect(self.cookie_db)
    cursor = conn.cursor()
    cursor.execute("""
    INSERT INTO cookies (platform, cookies, timestamp, valid)
    VALUES (?, ?, ?, ?)
    """, (
        platform,
        json.dumps(cookies),
        datetime.now().isoformat(),
        int(valid)
    ))
    conn.commit()
    conn.close()

def get_latest_valid_cookies(self, platform: str) -> Optional[Dict[str, str]]:
    """获取最新有效的Cookies"""
    conn = sqlite3.connect(self.cookie_db)
    cursor = conn.cursor()
    cursor.execute("""
    SELECT cookies FROM cookies
    WHERE platform = ? AND valid = 1
    ORDER BY timestamp DESC
    LIMIT 1
    """, (platform,))
    row = cursor.fetchone()
    conn.close()
    if row:
        return json.loads(row[0])
    return None

if name == "main":
manager = CookieManager()
all_cookies = manager.extract_all()
print("提取结果:")
for platform, data in all_cookies.items():
print(f"{platform}: {'有效' if data['valid'] else '无效'}")
print(f"Cookies: {json.dumps(data['cookies'], indent=2)}")

XiaoHongShuCookieExtractor(BaseCookieExtractor):
"""小红书Cookie提取器"""
def init(self):
super().init()
self.platform_name = "xiaohongshu"
self.required_cookies = ["a1", "web_session"]
self.domain = ".xiaohongshu.com"

def extract(self) -> Dict[str, str]:
    cookies = {}
    try:
        cj = browser_cookie3.load(domain_name=self.domain)
        for cookie in cj:
            if cookie.domain.endswith(self.domain):
                cookies[cookie.name] = cookie.value
    except Exception as e:
        print(f"提取小红书Cookie失败: {e}")
    return cookies

def test_cookies(self, cookies: Dict[str, str]) -> bool:
    if not self.validate_cookies(cookies):
        return False
    try:
        headers = {
            "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36",
            "Cookie": "; ".join([f"{k}={v}" for k, v in cookies.items()])
        }
        response = requests.get(
            "https://www.xiaohongshu.com/fe_api/burdock/v2/homefeed",
            headers=headers,
            timeout=10
        )
        return response.status_code == 200
    except Exception:
        return False

class WeiboCookieExtractor(BaseCookieExtractor):
"""微博Cookie提取器"""
def init(self):
super().init()
self.platform_name = "weibo"
self.required_cookies = ["SUB", "XSRF-TOKEN"]
self.domain = ".weibo.com"

def extract(self) -> Dict[str, str]:
    cookies = {}
    try:
        cj = browser_cookie3.load(domain_name=self.domain)
        for cookie in cj:
            if cookie.domain.endswith(self.domain):
                cookies[cookie.name] = cookie.value
    except Exception as e:
        print(f"提取微博Cookie失败: {e}")
    return cookies

def test_cookies(self, cookies: Dict[str, str]) -> bool:
    if not self.validate_cookies(cookies):
        return False
    try:
        headers = {
            "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36",
            "Cookie": "; ".join([f"{k}={v}" for k, v in cookies.items()])
        }
        response = requests.get(
            "https://weibo.com/ajax/feed/hottimeline",
            headers=headers,
            timeout=10
        )
        return response.status_code == 200
    except Exception:
        return False

class BilibiliCookieExtractor(BaseCookieExtractor):
"""哔哩哔哩Cookie提取器"""
def init(self):
super().init()
self.platform_name = "bilibili"
self.required_cookies = ["SESSDATA", "bili_jct"]
self.domain = ".bilibili.com"

def extract(self) -> Dict[str, str]:
    cookies = {}
    try:
        cj = browser_cookie3.load(domain_name=self.domain)
        for cookie in cj:
            if cookie.domain.endswith(self.domain):
                cookies[cookie.name] = cookie.value
    except Exception as e:
        print(f"提取哔哩哔哩Cookie失败: {e}")
    return cookies

def test_cookies(self, cookies: Dict[str, str]) -> bool:
    if not self.validate_cookies(cookies):
        return False
    try:
        headers = {
            "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36",
            "Cookie": "; ".join([f"{k}={v}" for k, v in cookies.items()])
        }
        response = requests.get(
            "https://api.bilibili.com/x/web-interface/nav",
            headers=headers,
            timeout=10
        )
        return response.status_code == 200 and response.json().get("data", {}).get("isLogin", False)
    except Exception:
        return False
相关文章
|
8月前
|
存储 缓存 测试技术
理解Python装饰器:简化代码的强大工具
理解Python装饰器:简化代码的强大工具
|
9月前
|
程序员 测试技术 开发者
Python装饰器:简化代码的强大工具
Python装饰器:简化代码的强大工具
302 92
|
8月前
|
机器学习/深度学习 编解码 Python
Python图片上采样工具 - RealESRGANer
Real-ESRGAN基于深度学习实现图像超分辨率放大,有效改善传统PIL缩放的模糊问题。支持多种模型版本,推荐使用魔搭社区提供的预训练模型,适用于将小图高质量放大至大图,放大倍率越低效果越佳。
646 3
|
9月前
|
人工智能 自然语言处理 安全
Python构建MCP服务器:从工具封装到AI集成的全流程实践
MCP协议为AI提供标准化工具调用接口,助力模型高效操作现实世界。
1551 1
|
8月前
|
算法 安全 数据安全/隐私保护
Python随机数函数全解析:5个核心工具的实战指南
Python的random模块不仅包含基础的随机数生成函数,还提供了如randint()、choice()、shuffle()和sample()等实用工具,适用于游戏开发、密码学、统计模拟等多个领域。本文深入解析这些函数的用法、底层原理及最佳实践,帮助开发者高效利用随机数,提升代码质量与安全性。
1216 0
|
测试技术 索引 Python
Python接口自动化测试框架(练习篇)-- 数据类型及控制流程(一)
本文提供了Python接口自动化测试中的编程练习,包括计算器、猜数字、猜拳和九九乘法表等经典问题,涵盖了数据类型、运算、循环、条件控制等基础知识的综合应用。
347 1
|
机器学习/深度学习 设计模式 测试技术
Python 高级编程与实战:构建自动化测试框架
本文深入探讨了Python中的自动化测试框架,包括unittest、pytest和nose2,并通过实战项目帮助读者掌握这些技术。文中详细介绍了各框架的基本用法和示例代码,助力开发者快速验证代码正确性,减少手动测试工作量。学习资源推荐包括Python官方文档及Real Python等网站。
|
Java 测试技术 持续交付
【入门思路】基于Python+Unittest+Appium+Excel+BeautifulReport的App/移动端UI自动化测试框架搭建思路
本文重点讲解如何搭建App自动化测试框架的思路,而非完整源码。主要内容包括实现目的、框架设计、环境依赖和框架的主要组成部分。适用于初学者,旨在帮助其快速掌握App自动化测试的基本技能。文中详细介绍了从需求分析到技术栈选择,再到具体模块的封装与实现,包括登录、截图、日志、测试报告和邮件服务等。同时提供了运行效果的展示,便于理解和实践。
1296 4
【入门思路】基于Python+Unittest+Appium+Excel+BeautifulReport的App/移动端UI自动化测试框架搭建思路
|
敏捷开发 测试技术 持续交付
自动化测试之美:从零开始搭建你的Python测试框架
在软件开发的马拉松赛道上,自动化测试是那个能让你保持节奏、避免跌宕起伏的神奇小助手。本文将带你走进自动化测试的世界,用Python这把钥匙,解锁高效、可靠的测试框架之门。你将学会如何步步为营,构建属于自己的测试庇护所,让代码质量成为晨跑时清新的空气,而不是雾霾中的忧虑。让我们一起摆脱手动测试的繁琐枷锁,拥抱自动化带来的自由吧!
|
IDE 测试技术 开发工具
Python接口自动化测试框架(基础篇)-- 不只是txt的文件操作
本文介绍了Python中的文件操作方法,包括使用open()打开文件、close()关闭文件、read()读取内容、readline()读取单行、readlines()读取多行、write()写入内容以及writelines()写入多行的方法。同时,探讨了文件操作模式和编码问题,并扩展了上下文管理器with...as的使用,以及对图片和音频文件操作的思考和练习。
214 1
Python接口自动化测试框架(基础篇)-- 不只是txt的文件操作