Go语言技术文章
-
GJSON 的 Float() 返回 float64,大于 2^53 的整数不能都被浮点数精确表示。本文对比 Result.Raw、String、Float、Int 和 Uint,说明订单号、用户 ID 等大整数应该怎样读取。243 收藏 -
Go GJSON 的数组条件查询中,#(...) 取第一个匹配项,#(...)# 才会收集全部匹配项。本文用同一份数据对比两种路径的返回形态、Go 代码读取方式、空结果边界和接口设计取舍。242 收藏 -
GJSON 的 Exists 判断字段是否存在,空字符串判断的是字符串内容;缺失、null、空串和非空串并不是同一种状态。本文用一段最小 Go 示例说明四种状态的差异,并给出输入校验与审计时的选择方式。380 收藏 -
Go GJSON 读取多个不同路径时,不需要为每个字段重复处理整段 JSON。本文用 Parse 和 Result.Get 复用一次解析结果,再说明数组投影、多路径对象、缺失字段与类型转换的边界。311 收藏 -
介绍GJSON读取点号键名的路径转义写法,区分Go字符串与GJSON语法,并用完整示例说明动态组件转义、字段白名单和缺失结果处理。111 收藏 -
Go GJSON 处理 JSON 数组时,可以用 #.字段提取所有元素的同名字段,用条件查询后再投影,或用多路径一次构造只包含指定键的对象。本文给出当前写法、缺失字段处理和旧查询语法迁移边界。312 收藏 -
Colly 的 OnError 同时可能面对传输层失败、非 2xx HTTP 响应和解析回调错误。本文用 Response、StatusCode、errors.As 与 ParseHTTPErrorResponse 说明如何分类,并把判断接到日志、重试和异步收尾。485 收藏 -
Go Colly 默认会记录已经访问过的 URL,所以同一个地址第二次 Visit 常见返回 ErrAlreadyVisited。本文从复现、允许重复访问、分页参数和重试边界说明怎样处理,避免用全局开关掩盖请求设计问题。482 收藏 -
解释Go Colly异步请求为何在主程序退出前尚未完成,给出Wait正确位置、本地页面示例和错误记录方法,并说明回调及后台写入的等待边界。474 收藏 -
用两个职责清晰的 Colly Collector 分离列表页和详情页回调:列表只发现链接,详情独立解析,并说明 Clone 共享资源、相对 URL、错误处理和异步等待的边界。298 收藏 -
介绍 Go Colly 使用 colly.Context 在 OnRequest、OnHTML、OnResponse 和 OnError 之间传递请求级业务信息,说明 Request.Visit 的继承、Clone 的隔离边界,以及与标准库 context.Context 的职责区别。389 收藏 -
Go Colly 的 LimitRule 可以按域名控制同一站点的最大并发、固定间隔和随机间隔。本文结合 Async、Wait、DomainGlob 与多站点规则,说明怎样配置公开页面采集的节奏,并避开 Delay 与 Parallelism 同时设置时的语义误判。285 收藏 -
用一个小型商品列表解析器说明 goquery Find 与 Filter 的核心区别:Find 从当前选择集向下查找后代节点,Filter 只在当前选择集中保留匹配节点,并给出嵌套列表、空结果和组合选择器的判断方法。305 收藏 -
goquery 的 Text 会递归读取选中节点及其后代文本节点,所以父元素中的标题、段落和嵌套标签文字都会被合并。本文说明它的实现语义、常见误解和可控提取方式。148 收藏 -
使用goquery Clone隔离文章子树修改,说明Remove返回值、Find匹配范围和CloneDocument区别,给出保留原文档的完整Go示例。305 收藏