fish2018/pansou · error

未找到 listItemsData

Error message

未找到 listItemsData

What it means

Content guard in zlxapp parseListItems: the response body does not contain the listItemsMarker string at all. The page served is not the expected app page — a block/challenge page, a redirect body, or a redesign removed the embedded data. Input at fault: the raw fetched bytes.

Solutions

  1. Log the body prefix to see what was actually served
  2. Update listItemsMarker if the page's embedded variable was renamed
  3. Retry once in case of transient interstitials
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at plugin/zlxapp/zlxapp.go:178 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/e96bad16a93029c6. Report an issue: GitHub.

Appendix: source

Thrown at plugin/zlxapp/zlxapp.go:178

			continue
		}
		if resp.StatusCode == http.StatusOK {
			return resp, nil
		}

		lastErr = fmt.Errorf("HTTP %d", resp.StatusCode)
		resp.Body.Close()
	}
	if lastErr == nil {
		lastErr = fmt.Errorf("请求失败")
	}
	return nil, lastErr
}

func parseListItems(body []byte) ([]searchItem, error) {
	markerIndex := bytes.Index(body, listItemsMarker)
	if markerIndex < 0 {
		return nil, fmt.Errorf("未找到 listItemsData")
	}

	arrayStart := markerIndex + len(listItemsMarker)
	for arrayStart < len(body) && body[arrayStart] != '[' {
		arrayStart++
	}
	if arrayStart >= len(body) {
		return nil, fmt.Errorf("listItemsData 缺少数组")
	}

	arrayEnd, err := findJSONArrayEnd(body, arrayStart)
	if err != nil {
		return nil, err
	}

	var items []searchItem
	if err := jsonutil.Unmarshal(body[arrayStart:arrayEnd+1], &items); err != nil {
		return nil, err

View on GitHub (pinned to beaa561337)