SearchName 与 SearchResult:番名与详情页链接的取舍
SearchList 框住了所有结果,接下来两条字段负责在单条结果里各取所需:SearchName 取番剧名,SearchResult 取跳转链接。
SearchName:取名字
用开发者工具点选任意一条结果的番剧名,复制完整 XPath:
/html/body/div[1]/div/div[1]/div/div/div[2]/ul/li[1]/div[2]/h4/a
修剪分两步:
- 照例删 /html/body、补 //;
- 删掉与 SearchList 重复的前缀。对比两条语句——列表是
//div[1]/…/ul//li,名字是//div[1]/…/ul/li[1]/div[2]/h4/a,重复的「省市区」部分已经由列表定位完成,名字字段只需写「街道小区」:
//div[2]/h4/a
官方教程的比喻很到位:网购填地址,系统已选好省市县,你只填街道小区。
SearchResult:取链接,并决定下一站
同样方法复制详情链接的 XPath,修剪后得到形如 //div[2]/p[5]/a[2] 的语句。但这个字段多一个决策:它指向的页面,决定了 ChapterRoads 与 ChapterResult 将在什么页面里工作。
- 站点的详情页里直接带线路和剧集列表 → SearchResult 指向详情页链接;
- 点击番名直达的页面就是播放选集页 → SearchResult 的写法可以和 SearchName 同款(点名字就是进下一站);
- 站点结构特殊时,先在浏览器里实际点一遍,看清跳到哪一页再定写法。
决策原则:让 SearchResult 把应用带到「能看到线路和集数」的那一页,后面的线路、剧集字段才有东西可框。
写完立刻验
三条检索字段齐了就保存实测:搜一个常见关键词,能出结果列表、番名正常显示,检索段就算通了。出不来就回搜索列表定位检查,或去规则排错找原因。通了就进线路与剧集字段。