# CookieCloud Client 一个独立的、可复用的CookieCloud服务器客户端Python模块。 ## 特性 - ✅ **完全独立** - 无外部依赖,仅使用Python标准库 - ✅ **类型安全** - 完整的类型提示支持 - ✅ **异常处理** - 完善的异常体系 - ✅ **易于使用** - 简洁的API设计 - ✅ **可扩展** - 支持自定义配置 - ✅ **文档完善** - 详细的使用文档和示例 ## 安装 将 `cookiecloud_client` 目录复制到您的项目中即可使用。 ## 快速开始 ### 基本使用 ```python from cookiecloud_client import CookieCloudClient, CookieConfig # 创建配置 config = CookieConfig( server="https://cookiecloud.example.com", username="your_username", password="your_password" ) # 创建客户端 client = CookieCloudClient(config) # 下载所有cookies result = client.download() if result.success: print(f"下载成功!") print(f"总域名数: {result.total_domains}") print(f"总Cookie数: {result.total_cookies}") print(f"下载耗时: {result.download_time:.2f}秒") # 获取指定域名的cookie cookie_str = result.get_cookie_string("example.com") print(f"example.com的cookie: {cookie_str}") else: print(f"下载失败: {result.error_message}") ``` ### 下载指定域名的Cookie ```python # 下载单个域名 cookie_str = client.download_for_domain("baidu.com") if cookie_str: print(f"baidu.com的cookie: {cookie_str}") # 批量下载多个域名 domains = ["baidu.com", "google.com", "github.com"] cookies = client.download_for_domains(domains) for domain, cookie in cookies.items(): print(f"{domain}: {cookie}") ``` ### 测试连接 ```python success, message = client.test_connection() if success: print("连接成功!") else: print(f"连接失败: {message}") ``` ## 高级用法 ### 自定义配置 ```python config = CookieConfig( server="https://cookiecloud.example.com", username="your_username", password="your_password", timeout=60, # 超时时间(秒) verify_ssl=False, # 是否验证SSL证书 ignore_cookies=[ # 忽略的cookie名称 "CookieAutoDeleteBrowsingDataCleanup", "CookieAutoDeleteCleaningDiscarded" ] ) ``` ### 异常处理 ```python from cookiecloud_client import ( CookieCloudClient, CookieConfig, CookieCloudError, ConnectionError, AuthenticationError, DataParseError, NetworkError ) try: client = CookieCloudClient(config) result = client.download() except AuthenticationError as e: print(f"认证失败: {e.message}") print(f"用户名: {e.details.get('username')}") except ConnectionError as e: print(f"连接失败: {e.message}") print(f"服务器: {e.details.get('server')}") print(f"状态码: {e.details.get('status_code')}") except DataParseError as e: print(f"数据解析失败: {e.message}") except NetworkError as e: print(f"网络错误: {e.message}") print(f"原始错误: {e.details.get('original_error')}") except CookieCloudError as e: print(f"CookieCloud错误: {e.message}") ``` ### 使用Cookie数据对象 ```python result = client.download() # 获取所有域名 domains = result.get_domains() print(f"所有域名: {domains}") # 遍历所有cookie for domain, collection in result.cookies.items(): print(f"\n域名: {domain}") for cookie in collection.cookies: print(f" - {cookie.name}={cookie.value[:20]}...") print(f" 路径: {cookie.path}") print(f" 安全: {cookie.secure}") print(f" HttpOnly: {cookie.http_only}") ``` ## API文档 ### CookieConfig 配置类,用于存储CookieCloud服务器配置。 **参数:** - `server` (str): CookieCloud服务器地址 - `username` (str): 用户名 - `password` (str): 密码 - `timeout` (int): 请求超时时间(秒),默认30 - `verify_ssl` (bool): 是否验证SSL证书,默认True - `ignore_cookies` (List[str]): 忽略的cookie名称列表 ### CookieCloudClient 客户端类,用于与CookieCloud服务器交互。 **方法:** #### `download() -> DownloadResult` 下载所有cookies **返回:** DownloadResult对象 #### `download_for_domain(domain: str) -> Optional[str]` 下载指定域名的cookie字符串 **参数:** - `domain` (str): 目标域名 **返回:** cookie字符串或None #### `download_for_domains(domains: List[str]) -> Dict[str, Optional[str]]` 批量下载多个域名的cookie字符串 **参数:** - `domains` (List[str]): 目标域名列表 **返回:** {domain: cookie_string}字典 #### `test_connection() -> Tuple[bool, str]` 测试与CookieCloud服务器的连接 **返回:** (是否成功, 消息)元组 ### DownloadResult 下载结果类。 **属性:** - `success` (bool): 是否成功 - `cookies` (Dict[str, CookieCollection]): cookie集合字典 - `error_message` (str): 错误信息 - `total_domains` (int): 总域名数 - `total_cookies` (int): 总cookie数 - `download_time` (float): 下载耗时(秒) **方法:** - `get_cookie_string(domain: str) -> Optional[str]`: 获取指定域名的cookie字符串 - `get_domains() -> List[str]`: 获取所有域名列表 ## 异常类 ### CookieCloudError 基础异常类,所有其他异常都继承自此类。 ### ConfigurationError 配置错误异常 ### ConnectionError 连接错误异常 ### AuthenticationError 认证错误异常 ### DataParseError 数据解析错误异常 ### NetworkError 网络错误异常 ## 依赖 - Python 3.7+ - 仅使用Python标准库 ## 许可证 MIT License ## 更新日志 ### v1.0.0 (2026-03-02) - 初始版本发布 - 完整的CookieCloud客户端功能 - 独立模块,无外部依赖 - 完善的异常处理 - 详细的文档和示例