XIU2/UserScript

[自动无缝翻页] B站搜索页 搜索结果数量问题

xxxqq55 opened this issue · 6 comments

问题描述

B站每页搜索有隐藏没显示的搜索。好像脚本并没有去管这个。导致最后内容应该会接近一半的被隐藏,

附加截图

这是正常显示的搜索
屏幕截图 2024-09-10 102039
标了颜色的这个搜索就没显示
屏幕截图 2024-09-10 102118

我把标了颜色的显示出来,来个对比
屏幕截图 2024-09-10 102726

XIU2 commented

你提的这个我当初在写规则的时候就注意到,并特殊处理了。

这是目前的 B 站搜索页规则:

	"bilibili - 搜索页": {
		"host": "search.bilibili.com",
		"url": "fun.isUrlC(); return ((fun.lp() == '/all' || fun.lp() == '/video' || fun.lp() == '/pgc' || fun.lp() == '/article') && !fun.getCSS('ul.video-list') && !fun.getCSS('#article-list'))",
		"style": ".to_hide_md:not(.to_hide_xl) {display: initial !important;}",
		"history": true,
		"pager": {
			"type": 6,
			"nextL": "js; return fun.getNextEP('.vui_pagenation--btn-num.vui_button--active+button.vui_pagenation--btn-num','page=',/page=\\d+/)",
			"pageE": ".video-list-item,.media-list>div,.video-list>div",
			"replaceE": ".vui_pagenation--btns",
			"loadTime": 600,
			"scrollD": 3000
		}
	}

规则中有个 "style": ".to_hide_md:not(.to_hide_xl) {display: initial !important;}", 子规则,就是处理你说的这个问题的。
让 Class 含有 .to_hide_md 但又不含有 .to_hide_xl强行显示出来,同时含有这两个 Class 的则依旧不显示,因为同时含有的搜索结果元素和下一页的搜索结果重复了(下一页已经存在这几个结果了,不过顺序相比这个是打乱的。)

另外,可能因为搜索结果是排序的原因,所以每次搜索看到的结果内容都略有不同,顺序也会有变化,特别是像 最新发布 排序这种变化更频繁的。如果你触发下次翻页的间隔时间稍长一些,那么对于 Class 含有 .to_hide_md 但又不含有 .to_hide_xl 的搜索结果末尾的一个或两个可能就会被排序挤到第 2 页了,可能会在脚本新插入的第 2 页内容中看到一个或两个重复的,但实际使用过程中,还是很少见的,所以我当初写规则是保留了这个 style 子规则。

总之,目前的规则已经是我当初编写规则研究时得到的最佳方案了,基本没有什么可以优化的空间了。


这是第 1 页把 Class 同时含有 .to_hide_md.to_hide_xl 的搜索结果强行显示出来了。
01

这是第 2 页默认就显示的内容,开头的几个:
02