我是 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 条回复
dianso
2023-05-14 18:56:52 +08:00
和你说的完全不一样,每秒钟访问几十次每个主题
ffkjjj
2023-05-15 09:25:05 +08:00
这个插件不知道什么情况下会自动启用 vDaily. 我关闭过 vDaily 两次, 都被自动启用了.
因为我不喜欢在首页右侧出现 vDaliy 的相关主题列表, 我就关闭过这个功能. 后面发现 首页 vDaliy 列表又出现了, 一看设置, vDaliy 是开启的. 当时还以为记忆出现了偏差, 以为之前没关闭过 vDaliy. 然后又手动关闭了 vDaliy 一次. 今天看到这个主题, 又去看了眼设置, vDaliy 又被启用了...
ffkjjj
2023-05-15 09:26:19 +08:00
@ffkjjj #42 回复错了, 不是看了这个帖子, 是 https://www.v2ex.com/t/939839 这个
shyrock
2023-05-15 09:28:08 +08:00
哎,怎么说呢。
首先挺喜欢这个插件的,也用了很多年。
但是作者在这个主题中的表现确实不够坦诚,这种遮遮掩掩的态度越发加重了大家的质疑。
希望这事情能够说清楚,但是似乎说清楚的希望不大。。。
unco020511
2023-05-15 09:48:42 +08:00
我觉得大家是不是有些太敏感了,插件也是为爱发电呀,分析了下前因后果,感觉就是作者的一个 bug 引起不符合预期的爬取次数?
ukyoo
2023-05-15 09:57:07 +08:00
这点用户量爬了能干嘛...
sillydaddy
2023-05-15 10:07:14 +08:00
@shyrock 事件的经过大概是这样的:

v2ex plus 插件作者开发了一个关于 V2EX 的新功能 vDaily ,可以发布类似于 v 站帖子排行榜的功能,也有挖掘历史帖子展示出来的功能,所以它不光需要 v 站近期的帖子,还需要历史帖子的数据。

按照 plus 作者的说法,它向 sov2ex 作者借了一份爬取过的 v 站的存量帖子数据,但有些数据(点赞数、感谢数)不全。
https://www.v2ex.com/t/939486?p=2#r_13072169

所以,plus 作者决定自己爬取历史帖子数据。根据下面用户的反馈,这大概是在 2 个月前开始的:
https://www.v2ex.com/t/924796

问题在于,plus 作者完成这个爬取的过程,是借助 plus 插件用户:它用服务器下发给每个 plus 插件用户一些主题 id ,让这些用户在本地帮它完成主题的爬取,然后上传爬取到的主题内容到 plus 作者的服务器上。这就导致了刚才提到的那个帖子里,plus 插件的用户突然发现「最近查看过的主题」里面,出现了一些自己从来没有看过的主题。

plus 作者的这个决定,并没有征得 plus 插件用户的同意,没有显式给出这些用户自主选择的权利。

其实单 ip 爬取 v 站的数据,分布到 6 个月内,按照 90 万个帖子,180 天,每天大概 5000 个帖子,平均 20 秒请求一个帖子,对 v 站造成的压力应该不会增加多少。猜测 plus 作者可能是想快点爬完?
goodryb
2023-05-15 10:21:53 +08:00
@sillydaddy #47 课代表就是你。

这个扩展原来也用了挺长时间,一直没什么更新,最近几个月感觉更新的很频繁,果然还是有些问题在里面。


@sciooga #31 其实有时候我们也不需要多么复杂的功能,保持初心就好
sillydaddy
2023-05-15 10:29:03 +08:00
@goodryb
问题在于,按照上面的分析,它这样加速爬,不管是单机加速爬,还是分布式加速爬,10 倍的加速,会给 v 站造成 10 倍压力,100 倍就是 100 倍压力。

这样走捷径,相当于是走了歪路了,把用户和站长都触犯了。推出新功能,完全可以循序渐进啊,比如 v 站有 90 万个历史帖子,但不必都爬完,就可以推出新功能。想挖掘历史帖子的话,可以逐步挖掘,比如先爬取 1/3 的历史帖子,这 1/3 的历史帖子(30 万条),完全能够支撑新功能。后面再逐渐补充爬取剩下的 2/3 的帖子。
mogazheng
2023-05-15 10:40:13 +08:00
不管你开不开源,有没有开关,在做这个功能的时候,难道没有一点点的罪恶感?
如果有,但却没有尽可能让用户知道,是不是存在一点侥幸心理?
如果没有,那更可怕。
NessajCN
2023-05-15 11:04:19 +08:00
@lwjef 我进去看了一眼源码,的确只上传了帖子内容,没有用户个人信息。暂且相信作者没有窃取隐私的主观恶意。
那么现在的爬虫行为最大的客观危害就是对站点的访问压力了
剩下的就是对用户情感的损害(我个人不用插件所以这方面感受不深)
quicksand
2023-05-15 11:24:46 +08:00
我觉得作者的出发点肯定是好的, 做产品过程中难免会犯错. 不过确实侵犯了用户的权利, 这个和开源不开源是没关系的, 如果作者能从这次事件中吸取经验那也是好事
micromars
2023-05-15 13:57:54 +08:00
@quicksand #52 没有冒犯的意思,但是'我觉得作者的出发点肯定是好的, 做产品过程中难免会犯错',这两句话太经典了,DNA 动了
myselflove8090
2023-05-15 17:48:05 +08:00
国内新闻发布会现场😄,楼上
MajestySolor
2023-05-15 19:08: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