Skip to content

解析器模块文档

面向开发者的解析器实现说明:约定、数据映射、HTTP 调试与示例代码。

  • 语言/构建: Java 17 / Maven
  • 关键接口: cn.qaiu.parser.IPanTool(返回 Future<String>
  • 数据模型: cn.qaiu.entity.FileInfo(统一对外文件项)
  • JavaScript解析器: 支持使用 JavaScript 编写自定义解析器

快速调用示例

java
import cn.qaiu.WebClientVertxInit;
import cn.qaiu.entity.FileInfo;
import cn.qaiu.parser.IPanTool;
import cn.qaiu.parser.ParserCreate;
import io.vertx.core.Vertx;
import java.util.List;

public class ParserQuickStart {
    public static void main(String[] args) {
        Vertx vertx = Vertx.vertx();
        WebClientVertxInit.init(vertx);

        String shareUrl = "https://www.ilanzou.com/s/xxxx";
        IPanTool tool = ParserCreate.fromShareUrl(shareUrl)
                .createTool();

        // 同步方法获取文件列表
        List<FileInfo> files = tool.parseFileListSync();
        for (FileInfo f : files) {
            System.out.printf("%s\t%s\t%s\n",
                f.getFileName(), f.getSizeStr(), f.getParserUrl());
        }

        // 同步方法获取下载链接
        String raw = tool.parseSync();
        System.out.println("raw: " + raw);

        vertx.close();
    }
}

等价用法:已知网盘类型 + shareKey 构造

java
IPanTool tool = ParserCreate.fromType("lz")
        .shareKey("abcd12")
        .setShareLinkInfoPwd("1234")
        .createTool();

List<FileInfo> files = tool.parseFileListSync();

同步方法

方法说明
parseSync()解析单个文件下载链接
parseFileListSync()解析文件列表
parseByIdSync()根据文件ID获取下载链接

异步方法仍可用:parse()parseFileList()parseById() 返回 Future 对象。

解析器约定

  • 输入: 目标分享/目录页的上下文(shareKey、cookie、headers 等)
  • 输出: Future<List<FileInfo>>(文件/目录混合列表)
  • 错误: 失败场景通过 Future 失败或返回空列表
  • 并发: 使用 Vert.x Web Client 异步请求

FileInfo 关键字段

字段说明
fileId唯一标识
fileName展示名(建议带扩展名)
fileTypefile / folder
size / sizeStr字节数 / 原始字符串
createTime / updateTime时间格式 yyyy-MM-dd HH:mm:ss
parserUrl中间链接或协议占位
filePath / previewUrl / extParameters按需补充

相关文档