/** * 小红书客户端配置接口 */ export interface XHSClientConfig { cookies?: string; debug?: boolean; timeout?: number; retries?: number; proxies?: { http?: string; https?: string; }; } /** * 笔记信息接口 */ export interface NoteInfo { id: string; title: string; desc: string; type: string; user: { id: string; nickname: string; avatar: string; }; interact_info: { liked_count: number; collected_count: number; comment_count: number; share_count: number; }; image_list?: { url: string; width: number; height: number; }[]; video?: { url: string; width: number; height: number; duration: number; }; tag_list?: { id: string; name: string; type: string; }[]; url?: string; time: number; } /** * 用户信息接口 */ export interface UserInfo { id: string; nickname: string; avatar: string; desc?: string; gender?: number; follows?: number; fans?: number; interaction?: number; } /** * 搜索结果接口 */ export interface SearchResult { id: string; xsec_token: string; model_type: string; } /** * API响应接口 */ export interface ApiResponse { success: boolean; data?: T; error?: string; message?: string; } /** * 小红书爬虫客户端 */ export declare class XHSClient { private cookies; private debug; private timeout; private retries; private proxies?; private headers; /** * 创建小红书客户端实例 */ constructor(config?: XHSClientConfig); /** * 发送HTTP请求的通用方法 */ private makeRequest; /** * 获取笔记详情信息 */ getNoteInfo(noteUrl: string): Promise>; /** * 获取用户所有笔记 */ getUserAllNotes(userUrl: string): Promise>; /** * 搜索笔记 */ searchNotes(query: string, requireNum?: number, sortType?: number, noteType?: number, noteTime?: number): Promise>; /** * 解析笔记信息 */ private parseNoteInfo; /** * 获取排序参数 */ private getSortParam; /** * 获取笔记类型参数 */ private getNoteTypeParam; /** * 获取时间参数 */ private getNoteTimeParam; /** * 生成搜索ID */ private generateSearchId; /** * 获取笔记评论 */ getNoteComments(noteId: string, xsecToken?: string, cursor?: string): Promise>; /** * 获取页面元信息(通过解析HTML) */ getPageMeta(url: string): Promise>; } /** * 数据处理工具类 */ export declare class XHSDataUtil { /** * 将笔记列表保存为JSON格式 */ static saveNotesToJSON(notes: NoteInfo[], filePath: string): void; /** * 下载笔记媒体文件 */ static downloadNoteMedia(note: NoteInfo, savePath: string): Promise; /** * 格式化笔记信息用于显示 */ static formatNoteForDisplay(note: NoteInfo): string; } export declare function verifyConfig(config: XHSClientConfig): string[];