fish2018/pansou · error

获取search2参数失败

Error message

获取search2参数失败: %v

What it means

Wrapper in u3c3 SearchWithResult: getSearch2Parameter could not obtain the anti-scraping search2 token from any mirror domain (fetch failed or extraction came up empty on every base URL). Search cannot proceed without it.

Solutions

  1. Inspect the inner cause: all domains down vs token extraction failing
  2. If extraction fails, the homepage HTML structure changed — update extractSearch2FromHTML
  3. Refresh mirrors list / let the cached search2 expire before retrying
Defensive patterns

Strategy: retry

When it happens

Trigger: Thrown at plugin/u3c3/u3c3.go:101 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of fish2018/pansou@beaa561337 (2026-09-07). Data as JSON: /api/errors/6218adb1fdcf58ed. Report an issue: GitHub.

Appendix: source

Thrown at plugin/u3c3/u3c3.go:101

	if err != nil {
		return nil, err
	}
	return result.Results, nil
}

// SearchWithResult 搜索并返回详细结果
func (p *U3c3Plugin) SearchWithResult(keyword string, ext map[string]interface{}) (*model.PluginSearchResult, error) {
	if p.debugMode {
		log.Printf("[U3C3] 开始搜索: %s", keyword)
	}

	// 第一步:获取search2参数
	search2, err := p.getSearch2Parameter()
	if err != nil {
		if p.debugMode {
			log.Printf("[U3C3] 获取search2参数失败: %v", err)
		}
		return nil, fmt.Errorf("获取search2参数失败: %v", err)
	}

	// 第二步:执行搜索
	results, err := p.doSearch(keyword, search2)
	if err != nil {
		if p.debugMode {
			log.Printf("[U3C3] 搜索失败: %v", err)
		}
		return nil, err
	}

	if p.debugMode {
		log.Printf("[U3C3] 搜索完成,获得 %d 个结果", len(results))
	}

	// 应用关键词过滤
	filteredResults := plugin.FilterResultsByKeyword(results, keyword)

View on GitHub (pinned to beaa561337)