我是 V2EX Plus 作者,关于扩展中 vDaily (分布式爬虫)功能的情况说明

2023-05-14 11:40:07 +08:00
 sciooga

凌晨的时候朋友告诉我 tg 有一些奇怪的消息,然后看到了主题 /t/939486 大概是对扩展爬取数据的一些疑问。

针对疑问我整理一下:


Q: 扩展的操作是否涉及灰产、黑产?

A: 没有

扩展的前后端代码都是开源的,同时一开始就把日志、请求分析、API 等各项内容开放,如果扩展有其他的偷鸡摸狗的行为欢迎石锤然后再投诉和删除。

日志、API 、请求分析在 vDaily 最底部

前端: https://github.com/sciooga/v2ex-plus

后端: https://github.com/sciooga/v2ex-plus-backend

目前扩展发布是 Github 配置的 CI 发布的,也欢迎解包线上代码对比是否和开源代码一致


Q: 扩展是否能爬取 V 站之外的数据?

A: 不能

扩展有权限能访问的域名有三个: imgur 、v2ex 、weibo ,除此之外会触发跨域请求无法发出,可以看源码或者看浏览器内的扩展授权(部分 webkit 魔改浏览器可能会显示所有域名权限,可以解包查看对应代码)。


Q: 是否会操作 Cookie ?

A: 不会

欢迎查看源码


Q: 翻页 502 是否是扩展导致?

A: 大概率不是

因为没有操作 cookie ,同时也有非扩展用户遇到这种情况,早两天还也和站长沟通了这个情况 /t/937337


Q: 是否会涉及到隐私?

A: 不会

扩展无论获取当前浏览还是历史主题,都只是获取主题公开信息然后提交,具体看源码,用户个人任何隐私数据都没有获取以及提交。 https://github.com/sciooga/v2ex-plus/blob/master/spider/index.js


Q: 是否会导致活跃度快速到达黑条?

A: 扩展会导致,但不只是 vDaily 功能

扩展由于每几分钟会检查一次签到、未读消息,老版本还会检查关注的用户 /节点是否有新主题 /回复,这些才是导致活跃度增长的主要原因,vDaily 的工作逻辑是浏览一个主题可能(之前是 30% 目前是 0%)会附带 1-3 个请求历史帖子,这也会导致更多的活跃度增加


Q: 为什么突然增加 vDaily 这个功能?

A: 这也是 2.0 恢复的老功能

vDaily 是一个很老的,大概五六年前的项目,之前的域名已经停止服务了,当时也是因为没有时间每天浏览 V 站,做了个爬虫爬取数据筛选精华方便看看错过的内容,后面由于没有维护停掉了几年,现在重写了加入了扩展侧栏做推荐。


Q: 对用户、V 站造成什么额外的压力?

A: 每个主题浏览都有可能附带 1-3 个额外的请求

对于 V 站可能会产生一定量的未缓存的老主题请求,在站长的要求下已经关闭历史主题的抓取,对于用户会多消耗一些网络资源(仅加载 HTML ,图片、CSS 等不加载)


Q: 为什么没有明确的告知?

A: 是没有做好

当时的通知过于简单 https://github.com/sciooga/v2ex-plus/blob/2936025bf45b7b4b64a890a2e39443140b103f9a/background.js#L28


Q: 为什么默认开启?

A: 我的错

V 站用户需求还是很多的,扩展尽可能将大家的反馈都实现和改进,但是不少功能比较个性化,所以 2.0 大部分功能都有独立开关,至于是默认开启还是默认关闭,确实是由我决定的,这不好,以后的功能将默认都关闭。


Q: 为什么要删除日志?

A: 没有删除

goAccess 的实时日志是由一个很脆弱的 websocket 实现的,昨天访问得多就挂掉了,这太正常了...然后今天早上我手动启动了之后就从启动时开始记录了,日志文件应该都在,有需要可以公布。


目前扩展获取历史主题的功能也已经停掉了,项目仍然是开源的,前后端代码以及实时运行的日志、统计都是公开的,另外通过我们的 key 给我们发消息的朋友应该也明白这个功能并没有涉及到黑产灰产了吧?

原图

如果还有任何问题欢迎指正,开源项目得到大家的监督是很好的一件事,因为目前在外,看见消息会尽快回复。

14614 次点击
所在节点    程序员
55 条回复
Livid
2023-05-14 12:38:53 +08:00
关于翻页 502 。

之前我们上了这样的一个功能,用 cookie 保存访问过的最后的页码。这样当你进入一个有多页的主题页面时,会直接进入到你最后访问过的页面。

这个爬虫会让用户的这个 cookie 中增加大量用户没有访问过的页面的页码。

至于是否是由于 cookie 尺寸过大造成的 502 ,因为我没有也不会去安装这个插件,所以我无法验证。

这也是为什么遇到 502 问题的用户,清掉 cookie 之后就可以访问了。

我们最近暂时把这个记住和跳转页码的功能下掉了。所以现在当你访问一个有多页的主题时,如果 URL 中没有指定 p=x 那么现在只会默认进入第一页。
sciooga
2023-05-14 12:51:28 +08:00
关于翻页 502 ,我补充一点,vDaily 功能上线是近期,之前我遇到时也查过 V 站以前的主题,一年以前就有反馈 /t/857753
Xianmua
2023-05-14 13:03:26 +08:00
到现在为止,这个爬取历史主题的分布式爬虫 feature 还没有停掉,完全不像这个作者说的那样,“已经从服务器关闭下发任务了”
我刚录了个屏,大家来看看吧。 @Livid ,也 @一下站长
<amp-vimeo data-videoid="826586782" layout="responsive" width="16" height="9"></amp-vimeo>
Xianmua
2023-05-14 13:06:00 +08:00
lwjef
2023-05-14 13:06:15 +08:00
最最严重的问题是没有事先告知默认开启,也没有重点突出且提示该功能的作用,类比到网站,许多网站即使收集 cookie 做其他用途都会对用户提示,网站收集的用户日志如何处理也是个很复杂的问题,关键这网站也不是你的啊。

最终收集的信息不管有没有侵犯特定用户的隐私,滑坡思考一下就和某些网站拿用户浏览记录配合 cookie 或者其他方式在第三方做广告盈利一样非常让人讨厌,这里并不是说你收集的浏览数量、点赞数量等信息做了这些事情,某些网站的行为显然更让用户讨厌,但是上述行为稍懂一些的用户是可以选择不用不打开类似网站,对于你的插件用户并没有对这些风险的预知。

Q: 是否会操作 Cookie ?
A: 不会
欢迎查看源码

前端有源码我觉得挺坦荡,后端提供源码就别提了,意义有限。
同时通读源码为难人了,但是用户提出的细节猜测可以考虑解释下,这些问题比较容易回复。

有用户提到了这个后端的 cookie 行为,其实和前端没关系,可以考虑下。
https://github.com/sciooga/v2ex-plus-backend/blob/5427f9f97613e71086777bcfc8cac265a7b1255b/fastapi/tools.py#L137

这里 get 和 post 有个 sign ,我觉得也需要
https://www.v2ex.com/t/939839#r_13072767
yxzblue
2023-05-14 13:10:06 +08:00
居然还 star 了,先取消为敬
lwjef
2023-05-14 13:11:52 +08:00
@Xianmua #24 我的理解作者应该指的是 task 接口停掉的,post 和 get 都是本地插件行为,除非更新插件没法停止这些行为,但是完全可以把远端关了直接 404 啊。插件作者真是没意识到问题的严重性,公关行为极其失败。
Livid
2023-05-14 13:13:03 +08:00
@Xianmua 是的,依然还在运行。而且,只要你停在 /t/ 主题页面上,就会持续获取新的任务,并不像 @sciooga 说的「浏览一个主题,最多会额外增加 3 个 get 请求」

Xianmua
2023-05-14 13:13:29 +08:00
@lwjef task 接口没有停掉,获取历史主题爬虫任务没有停掉,自己看视频,别上来就回复
lwjef
2023-05-14 13:20:51 +08:00
@Xianmua #29 你说的 task 是参数和我说的 task 是接口,好好说话,不然我以为是小猫乱敲键盘。
sciooga
2023-05-14 13:22:25 +08:00
[项目地址]/blob/master/spider/index.js#L184

实在抱歉,我在动车上,检查了代码是我这里的判断出错了,times-- 变为负数后布尔值又变成 True 了,是我的问题

目前这部分代码只会请求我们的服务器,服务器返回的是空值,所以不会请求 V 站了,后续需要通过更新扩展移除掉这些请求


@Xianmua 上面的朋友说得没错,请求会发到我们服务器申请新的任务但是任务一直返回空,所以不会再爬取历史数据
Xianmua
2023-05-14 13:31:21 +08:00
这事录视频了,看视频就完了,昨天说不掺和了 还是又看了下,这回爱咋咋地吧,这条应该是真最后一条了,反正我提醒的义务尽到了,大部分朋友不可能来骂我,我没有任何歪心思,我对的起 v 站的朋友们。
至于上面那个大眼睛 morty ,让它姥爷去折磨它吧,我没那本事哈哈。
bxqqq
2023-05-14 13:49:28 +08:00
@zyronon 老哥,借楼问一句,你今天是更新了脚本吗?我上午还能正常使用,现在就点击帖子,悬浮的页面出现后就一直 load 转圈,加载不出来任何东西。。
Livid
2023-05-14 13:58:56 +08:00
@bxqqq 可能和我们今天针对这次爬虫事件部署的一条新的 WAF 规则有关,刚才做了一些调整,你再试试?
iold
2023-05-14 13:59:02 +08:00
@bxqqq 请求都是 403 ,应该是 v2 的后端做了特征处理。
zyronon
2023-05-14 14:08:48 +08:00
@bxqqq 我未更新脚本,站长更新的 WAF 规则导致的 ,我正在看什么地方不一致
bxqqq
2023-05-14 14:09:02 +08:00
@Livid #34 谢谢站长,已经可以了。
bxqqq
2023-05-14 14:10:06 +08:00
@zyronon #36 老哥,刚刚站长应该是已经做过一些调整,现在已经 work 了。
zyronon
2023-05-14 14:12:55 +08:00
@bxqqq 现在可以正常使用了。站长调整了 WAF 规则
picone
2023-05-14 17:19:49 +08:00
开源的确不是开脱的借口,但是作为用户应该反思对使用开源软件时审查的是否足够。所有人都是善良的当然好,但作为用户方也不能老依赖这个

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/939852

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX