userscript icon indicating copy to clipboard operation
userscript copied to clipboard

楼层检测api似乎部分失效了,无回复的楼层返回”您要浏览的贴子不存在”

Open shitianshiwa opened this issue 5 years ago • 10 comments

涉及脚本:Tieba_Blocked_Detect v1.1.2 Firefox版本:不是火狐浏览器,使用Google Chrome 版本 75.0.3770.142(正式版本) (64 位) GreaseMonkey版本:不是GreaseMonkey,使用Tampermonkey BETA v4.11.6113 by Jan Biniok 重现步骤:https://tieba.baidu.com/mo/q-----1-1-0----/flr?pid=133069719370&kz=6775190764&pn=0 问题截图(建议): Image 4

shitianshiwa avatar Jun 29 '20 14:06 shitianshiwa

又自己好了,可能是服务器抽风。。!

shitianshiwa avatar Jun 29 '20 14:06 shitianshiwa

即使是服务器抽风,也出现的很频繁了

shitianshiwa avatar Jun 30 '20 13:06 shitianshiwa

wap贴吧的楼层回复功能失效了

shitianshiwa avatar Jun 30 '20 13:06 shitianshiwa

这个暂时无解,毕竟 wap 极简版贴吧本身就已经不再维护了,几个月前连贴吧列表都被屏蔽无法访问了。目前没有比较可靠的检测楼层的方案(如果之前有多个楼层被屏蔽,直接读取 PC 贴吧对应页有可能会出现楼层不再该页的情况),或者只能靠抓包获得(可能)更稳定的贴吧客户端 API ---原始邮件--- 发件人:"是甜食哇"<[email protected]> 发送时间:2020年6月30日 星期二 下午9:40 收件人:"FirefoxBar/userscript"<[email protected]> 抄送:"Subscribed"<[email protected]> 主题:Re: [FirefoxBar/userscript] 楼层检测api似乎部分失效了,无回复的楼层返回”您要浏览的贴子不存在” (#21)

即使是服务器抽风,也出现的很频繁了

— You are receiving this because you are subscribed to this thread. Reply to this email directly,view it on GitHub, orunsubscribe.

ccloli avatar Jun 30 '20 14:06 ccloli

有没有演示的贴子?我试一下客户端API

sylingd avatar Jun 30 '20 15:06 sylingd

有没有演示的贴子?我试一下客户端API

这类贴子是发帖/回帖/回复楼中楼后仅自己可见的,所以只能通过自己发一些比较敏感的贴子来检查

检查贴子是否被屏蔽,可以发帖后确认这个贴子正常发出没有进贴吧回收站,然后用另一个帐号或者在浏览器的隐身模式下查看对应楼层是否还能看到

ccloli avatar Jun 30 '20 15:06 ccloli

有没有演示的贴子?我试一下客户端API

这类贴子是发帖/回帖/回复楼中楼后仅自己可见的,所以只能通过自己发一些比较敏感的贴子来检查

检查贴子是否被屏蔽,可以发帖后确认这个贴子正常发出没有进贴吧回收站,然后用另一个帐号或者在浏览器的隐身模式下查看对应楼层是否还能看到

我贴吧号已经被封了……试不了……

sylingd avatar Jun 30 '20 15:06 sylingd

这个暂时无解,毕竟 wap 极简版贴吧本身就已经不再维护了,几个月前连贴吧列表都被屏蔽无法访问了。目前没有比较可靠的检测楼层的方案(如果之前有多个楼层被屏蔽,直接读取 PC 贴吧对应页有可能会出现楼层不再该页的情况),或者只能靠抓包获得(可能)更稳定的贴吧客户端 API ---原始邮件--- 发件人:"是甜食哇"<[email protected]> 发送时间:2020年6月30日 星期二 下午9:40 收件人:"FirefoxBar/userscript"<[email protected]> 抄送:"Subscribed"<[email protected]> 主题:Re: [FirefoxBar/userscript] 楼层检测api似乎部分失效了,无回复的楼层返回”您要浏览的贴子不存在” (#21) 即使是服务器抽风,也出现的很频繁了 — You are receiving this because you are subscribed to this thread. Reply to this email directly,view it on GitHub, orunsubscribe.

这三个api可能有用?爬虫获取贴吧贴子也用这些 https://tieba.baidu.com/p/6149550150?ajax=1&pn=1 https://tieba.baidu.com/p/totalComment?tid=6149550150&fid=&pn=1 https://tieba.baidu.com/p/comment?tid=6149550150&pid=125907417091&pn=1

shitianshiwa avatar Jun 30 '20 16:06 shitianshiwa

记得好像之前提到过或者代码注释里写过,PC 版可以通过不传 cookie 获取到主题帖和楼中楼的状态,主要是无法确定楼层的状态。

  • 获取主题帖的状态,只需要不传 cookie 获取贴子页就行了
  • 获取楼中楼的状态,只需要获取第一页楼中楼的数据就行了,因为翻页时隐藏的楼中楼本身就不会显示出来
  • 获取楼层的状态比较困难,因为没有可靠的 API 来推断数据
    • 第二个 API 没看出来是用在什么地方的,至少试了个屏蔽的主题帖没什么变化,而且看出来传了 pn 参数,这个就回到我之前说的无法精确定位楼层在哪一页的问题了。举个例子,回复后楼层是 30 和 31,其中在第一页的 30 楼被屏蔽了,第二页的 31 楼没被屏蔽。此时如果匿名去请求第二页的楼层,实际上是拿不到 31 楼的,因为匿名状态下 30 楼是不存在的,此时 31 楼实际是在第一页,如果回复的楼层很多,这种方式不太靠谱
    • 第三个 API 是取楼中楼的,实际上没什么用,贴吧是不会判断 pid 是否有效的,可以理解为只是查表中回复的 pid 是指定值的数据而已,不会校验 pid(实际上你甚至可以借此回复楼中楼的楼层,当然因为回复的不是父楼层,你的回复是不会在楼中楼中展示的,相当于是在楼中楼中开了个楼中楼)

主要是获取楼层状态目前只有 wap 3g 版贴吧比较靠谱,所以就干脆简单点,其他的都用 wap 版判断了

ccloli avatar Jun 30 '20 16:06 ccloli

可以先屏蔽掉楼层检测,毕竟还有贴子和楼中楼检测还是生效的 https://github.com/shitianshiwa/baidu-tieba-userscript/tree/master/%E8%B4%B4%E5%90%A7%E8%B4%B4%E5%AD%90%E5%B1%8F%E8%94%BD%E6%A3%80%E6%B5%8B 贴吧贴子屏蔽检测(兼容版) 不支持动态翻页,也就是翻页后需要人工刷新网页才检测(改坏了)

shitianshiwa avatar Jul 11 '20 00:07 shitianshiwa