MCPcopy
hub / github.com/fish2018/pansou / parseSearchResults

Method parseSearchResults

plugin/xys/xys.go:296–328  ·  view source on GitHub ↗

parseSearchResults 解析搜索结果HTML

(htmlData, keyword string)

Source from the content-addressed store, hash-verified

294
295// parseSearchResults 解析搜索结果HTML
296func (p *XysPlugin) parseSearchResults(htmlData, keyword string) ([]model.SearchResult, error) {
297 doc, err := goquery.NewDocumentFromReader(strings.NewReader(htmlData))
298 if err != nil {
299 return nil, fmt.Errorf("[%s] 解析搜索结果HTML失败: %w", p.Name(), err)
300 }
301
302 var results []model.SearchResult
303
304 // 查找搜索结果项
305 doc.Find(".layui-card[data-qid]").Each(func(i int, s *goquery.Selection) {
306 if len(results) >= MaxResults {
307 return
308 }
309
310 result := p.parseResultItem(s, i+1)
311 if result != nil {
312 results = append(results, *result)
313 }
314 })
315
316 if p.debugMode {
317 log.Printf("[XYS] 解析到 %d 个原始结果", len(results))
318 }
319
320 // 关键词过滤(标准网盘插件需要过滤)
321 filteredResults := plugin.FilterResultsByKeyword(results, keyword)
322
323 if p.debugMode {
324 log.Printf("[XYS] 关键词过滤后剩余 %d 个结果", len(filteredResults))
325 }
326
327 return filteredResults, nil
328}
329
330// parseResultItem 解析单个搜索结果项
331func (p *XysPlugin) parseResultItem(s *goquery.Selection, index int) *model.SearchResult {

Callers 1

executeSearchMethod · 0.95

Calls 3

NameMethod · 0.95
parseResultItemMethod · 0.95
FilterResultsByKeywordFunction · 0.92

Tested by

no test coverage detected