SipSoup是一个基于JSoup的Xpath抽取器,他将JSoup的css Query语法和Xpath语法糅合在一起,支持在xpath内部实现他们之间的混合链式调用。同时SipSoup支持方便的自定义扩展,允许重写函数,轴,谓语,运算符,甚至允许定义新的数据类型。你可以在此基础上实现或者扩展xpath标准。
本次更新主要解决首次发布以来发现了各种bug:
V1.3更新内容
1. 解决所有sonar主要级别的语法告警
2. 提供SipSoup到XSoup的桥接器,自此SipSoup存在兼容XSoup和JSoupXpath的方案
3. 轴函数token识别优化,解决部分场景轴函数解析错误的隐患,并对函数解析失败的日志内容做了优化
4. 将谓语结果判断封装成一个函数,这样可以支持谓语判断逻辑扩展,函数名称为:sipSoupPredictJudge。这样统一了流程,减少特殊逻辑,增加扩展性
5. 消重的同时保证顺序 #2 @clive_hua
6. 轴函数名字中允许"-" #1 @clive_hua xpath的语法中,标识符允许"-"
7. preceding-sibling的顺序问题,计算前置同胞节点,依然需要保持自然顺序。JSoupXpath也有此bug
8. string-length 函数长度计算错误,之前直接返回了字符串本身,实际逻辑需要返回字符串对应的长度
V1.2更新内容(此次更新静默更新,因为刚刚发布就发现有bug,怕被打)
1. 增加函数 absUrl,用于将网页里面的相对路径转化为绝对路径
2. 函数contains对于参数个数检查逻辑有误,导致不能正确执行函数,以及为参数计算节点调用逻辑故障导致不能获取到字符串文本问题。
3. 函数nullToDefault对于参数个数检查逻辑有误,导致不能正确执行函数
4. 优化抽取器逻辑,如果抽取结果已经为空,则直接返回空数据,不需要运用xpath抽取链规则
5. tag抽取,根据xpath规则,需要抽取当前节点的直接子节点,之前错误的使用了当前节点
软件官网:https://gitee.com/virjar/sipsoup
父项目:https://gitee.com/virjar/vscrawler
统一文档地址:http://vscrawler.scumall.com/
暂无更多评论