{"record":{"id":"fb90fbd512ccc370","repo":"xpzouying/xiaohongshu-mcp","slug":"s-fb90fb","errorCode":null,"errorMessage":"筛选面板里没有「%s」这一组","messagePattern":"筛选面板里没有「(.+?)」这一组","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"xiaohongshu/search.go","lineNumber":248,"sourceCode":"\t\t}\n\n\t\tvar available []string\n\t\tfor _, opt := range options {\n\t\t\tt, err := opt.Text()\n\t\t\tif err != nil {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tt = strings.TrimSpace(t)\n\t\t\tif t == pf.option {\n\t\t\t\treturn opt, nil\n\t\t\t}\n\t\t\tavailable = append(available, t)\n\t\t}\n\t\treturn nil, fmt.Errorf(\"「%s」里没有选项「%s」，页面上是：%s\",\n\t\t\tpf.group, pf.option, strings.Join(available, \"、\"))\n\t}\n\n\treturn nil, fmt.Errorf(\"筛选面板里没有「%s」这一组\", pf.group)\n}\n\nfunc makeSearchURL(keyword string) string {\n\n\tvalues := url.Values{}\n\tvalues.Set(\"keyword\", keyword)\n\tvalues.Set(\"source\", \"web_explore_feed\")\n\n\t//https://www.xiaohongshu.com/search_result?keyword=%25E7%258E%258B%25E5%25AD%2590&source=web_search_result_notes\n\t//https://www.xiaohongshu.com/search_result?keyword=%25E7%258E%258B%25E5%25AD%2590&source=web_explore_feed\n\treturn fmt.Sprintf(\"https://www.xiaohongshu.com/search_result?%s\", values.Encode())\n}\n","sourceCodeStart":230,"sourceCodeEnd":261,"githubUrl":"https://github.com/xpzouying/xiaohongshu-mcp/blob/332d196854a9eac0d2b8c2c0e3d0cc43139d724c/xiaohongshu/search.go#L230-L261","documentation":"findFilterOption 遍历筛选面板全部分组，没有任何 div.filters 的组标签文本等于 pf.group：请求的筛选维度（如「筛选」「发布时间」）在当前面板不存在，可能是搜索类型不支持该维度或面板结构变化。","triggerScenarios":"Search 的 pendingFilter 配置中 group 字段与页面上任何组标签都不匹配，例如传「类型」而页面组标签只有「排序」「范围」「筛选」。","commonSituations":"小红书改版增删了筛选分组；调用方凭记忆硬编码组名；页面该组被服务端按类目/登录态隐藏。","solutions":["核对页面筛选面板实际展示的组标签文字，修正 group 字段","升级库版本以适配最新分组结构","确认当前类目/登录态下该筛选分组是否确实存在"],"exampleFix":"// before\npf := pendingFilter{group: \"笔记类型\", option: \"图文\"}\n// after（页面上组标签为「筛选」）\npf := pendingFilter{group: \"筛选\", option: \"图文\"}","handlingStrategy":"validation","validationCode":"var validGroups = []string{\"排序\", \"范围\", \"筛选\"}\nif !contains(validGroups, pf.Group) {\n  return fmt.Errorf(\"分组 %q 不存在，可用: %v\", pf.Group, validGroups)\n}","typeGuard":"func isValidFilterGroup(group string) bool {\n  for _, g := range validGroups {\n    if g == group { return true }\n  }\n  return false\n}","tryCatchPattern":"res, err := client.Search(ctx, q)\nif err != nil && strings.Contains(err.Error(), \"筛选面板里没有\") {\n    return fmt.Errorf(\"请核对筛选分组名，当前页面只提供固定几组\")\n}","preventionTips":["使用库定义的分组常量而非手写字符串","关注页面改版增删的筛选分组","确认目标类目/登录态下该分组确实存在","组名比较前 TrimSpace"],"tags":["validation","filter","scraping","invalid-argument"],"backgroundTag":"invalid-filter-option","analyzedSha":"332d196854a9eac0d2b8c2c0e3d0cc43139d724c","analyzedAt":"2026-09-05T22:22:55.988Z","contentChangedAt":"2026-09-05T22:22:55.988Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}