V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Xianmua
V2EX  ›  程序员

v2ex plus 用户们,你们知道你们的浏览器被用来跑分布式爬虫了吗

  Xianmua · 347 天前 · 39449 次点击
这是一个创建于 347 天前的主题,其中的信息可能已经有所发展或是发生改变。
首先承认标题夸张了点,但是事实确实如此。
看到有个 V2EX plus 插件,很多人都装了的,准备也安装来用用。插件功能不少,这个没错,有些方便的小功能。
进设置页面的时候,发现有个 vdaily 默认开启,比较有意思的是这句话“同时接受等量的爬取任务”。有点好奇接受任务这件事,于是看了看怎么回事。哦只要安装了插件,会不断地从服务器获取爬虫任务。
vdaily 作者的网站,有非常详细的请求统计和快速滚动的爬虫任务日志分析,想看的自己去看吧,都是公开的(在请求统计和日志那里)。这里有一堆截图,可以看看。
当然可以说作者做的一点毛病也没有,毕竟在插件设置内都写明了,开启 vdaily 会接受爬取的任务,至于爬取的数据,那就是 vdaily 的资产了对吧。分布式爬虫人家也没什么遮遮掩掩的,都是正大光明的,本篇帖子也没有有技术含量的分析。只是说我是不太喜欢这个 feature ,删了。提醒一下大家,不知道的或者是介意的,都知道知道。
图片合辑: https://imgur.com/a/shPfy8I













https://i.imgur.com/N4TK3FG.mp4
第 1 条附言  ·  347 天前
https://github.com/sciooga/v2ex-plus
还是开源的,想看的可以去看看,再补两张图
链接: https://imgur.com/a/SFkYcHZ


第 2 条附言  ·  347 天前
作者像是已经处理过了,数据统计控制面板,只有 60 万次请求了(只显示 4.23 的数据),之前显示 4.23-5.12 的总请求次数可是 1300 多万次的,想用的接着麻痹自己吧哈哈
这是之前截的图,有 4.23-5.12 最新的数据:

这是刚截的图,注意看右上角日期,只有 4 月 23 日一天的数据了
185 条回复    2023-06-04 11:06:16 +08:00
1  2  
Yvette
    101
Yvette  
   347 天前   ❤️ 1
难怪之前用了 V2EX Plus 之后我的 activity bar 经常拉满直接黑了。。。后来感觉这个插件有点问题就删了,没想到是这样
roswellian
    102
roswellian  
   347 天前
早就卸载,用的 polish ,非常好用
JamesR
    103
JamesR  
   347 天前
谢谢提醒,已卸载,换别的了。
taine221
    104
taine221  
   347 天前   ❤️ 3
为什么要在程序员社区搞这种小动作,被发现是迟早的事情。

但是信用永远找不回来了,作者主页: https://www.v2ex.com/member/sciooga
建议一起 block
IamJ
    105
IamJ  
   347 天前   ❤️ 2
作者在线但就是不回应,是在想着找啥借口吗🤡
jqtmviyu
    106
jqtmviyu  
   346 天前
害怕!

当年 cent browser 在 2.7 升 2.8 后弹 2345 导航 也把我恶心了好久.
kingfalse
    107
kingfalse  
   346 天前 via Android
远离国产,远离国产,远离国产
hanzichi
    108
hanzichi  
   346 天前
有点秀了
bjzhush
    109
bjzhush  
   346 天前
作者能不能解释一下这个等量的爬取任务指的是 V2 站内的呢?还是别的网站的呢?
javen73
    110
javen73  
   346 天前   ❤️ 1
我说怎么翻不了页了,擦,已删除
xuromky
    111
xuromky  
   346 天前
持续关注,一开始用的就是这个扩展
waising
    112
waising  
   346 天前
@chirsgod 这个是不是没有办法用夜间模式,设置了夜间模式没有生效
5200
    113
5200  
   346 天前
之前抓包的时候看到了这个网址,一直不知道是哪个插件来的,直接屏蔽了这个网址。
zyronon
    114
zyronon  
   346 天前
@Livid #68 站长楼层号塌陷是 feature 还是 bug ?
agdhole
    115
agdhole  
   346 天前
删除+举报了,太恶心了
a90120411
    116
a90120411  
   346 天前
没用过这个插件,但看了一下代码,“/api/topic/task” 这个任务下发的接口风险应该挺高,如果用来做恶的话。
hellomynameis
    117
hellomynameis  
   346 天前
老哥们有什么更好的 v 站插件推荐吗?
chunqiuyiyu
    118
chunqiuyiyu  
   346 天前
真恶心,以后用插件都要长个心眼了。
XiaoBaiYa
    119
XiaoBaiYa  
   346 天前
@javen73 #110 原来是这个原因。。我之前找了很久
zyronon
    120
zyronon  
   346 天前
@hellomynameis #117 可以试试这个 https://greasyfork.org/zh-CN/scripts/458024 ,代码是开源的
tankren
    121
tankren  
   346 天前
用的 V2EX polish
suotm
    122
suotm  
   346 天前   ❤️ 2
看了一圈,尝试了一遍,用了 V2EX - 超级增强 ,主要是脚本我看得懂里面搞了什么操作。

感谢所有增强插件的作者。
herozzm
    123
herozzm  
   346 天前
@bjzhush 应该是服务端下发的任务,可以是任何网站
blacko
    124
blacko  
   346 天前


一直使用 V2EX plus ,我在 选项 - 其他 里没有找到 vDaily 设置,macOS ,Firefox 。
ljsh093
    125
ljsh093  
   346 天前 via iPhone   ❤️ 1
@sciooga 出来洗地
ljsh093
    126
ljsh093  
   346 天前 via iPhone
@blacko 激活微博是啥意思?
Xianmua
    127
Xianmua  
OP
   346 天前
@blacko 当然没有,firefox 商店的最新版是 2021 年的 1.6.5 版本,vdaily 功能是今年三月份加入的
mortal
    128
mortal  
   346 天前
谢谢,已卸载。
PinLeak
    129
PinLeak  
   346 天前
我不在乎,随便爬。
levenwindy
    130
levenwindy  
   346 天前
@chirsgod 才知道 V2EX 有插件,改了暗色还行,就是图片亮度太高了
bzw875
    131
bzw875  
   346 天前
无所谓吧,不是挖矿就行,我也想看 vDaily 啊
dxppp
    132
dxppp  
   346 天前 via Android
@PinLeak 那我和楼上不少老哥都很在乎
RoccoShi
    133
RoccoShi  
   346 天前
我居然才知道 V2EX 有插件
locoz
    134
locoz  
   346 天前
@blacko #124 老版本没有。之前其实也都很长时间没更新了,今年突然快速更新了很多版,然后才有了这功能。
gzlock
    135
gzlock  
   346 天前
@zyronon #42 卸载了 v2 plus 扩展之后用你的脚本,发现回复帖子会提示“回复失败”,禁用脚本之后成功回复。

zyronon
    136
zyronon  
   346 天前
@gzlock #135 好的,收到
lran9527
    137
lran9527  
   346 天前
一下就想到了 "中国人愿用隐私换便捷", 哈哈哈哈, 有点招笑, 假如作者关了的话,我想我还是会继续用吧,先卸了,等子弹飞一会。
helloet
    138
helloet  
   346 天前
谢谢 已卸载
pokon548
    139
pokon548  
   346 天前 via Android
补充几个额外信息:

原作者在 GitHub 上还弄了一个名为 v2ex-plus-backend 的开源项目: https://github.com/sciooga/v2ex-plus-backend/

为了避免意外情况,这是互联网存档: https://web.archive.org/web/20230513145058/https://github.com/sciooga/v2ex-plus-backend/

如果你对代码感兴趣,这是源代码 zip 归档的 archive 链接: https://web.archive.org/web/20230513144958/https://codeload.github.com/sciooga/v2ex-plus-backend/zip/refs/heads/master
pokon548
    140
pokon548  
   346 天前 via Android
另外,刚发现这个后端似乎存在获得 V2EX 用户 session 和 cookie 的高危行为:

https://github.com/sciooga/v2ex-plus-backend/blob/5427f9f97613e71086777bcfc8cac265a7b1255b/fastapi/tools.py#L137

互联网存档: https://web.archive.org/web/20230513145855/https://github.com/sciooga/v2ex-plus-backend/blob/5427f9f97613e71086777bcfc8cac265a7b1255b/fastapi/tools.py

我不认为一个插件有任何获得 session 与 cookie 的正当理由,建议大家谨慎抉择
Xianmua
    141
Xianmua  
OP
   346 天前
@pokon548 我看了看,他那个好像是弄了个 自动生成周报并发帖的功能。用 @vPlus 这个账号发布的
sciooga
    142
sciooga  
   346 天前   ❤️ 5
不好意思,我不是在线不回复(目前在外,家里电脑安装了扩展会定时获取未读消息就会一直在线了),刚知道消息,还是朋友告知的,没想到发酵这么厉害,针对上面的一些疑惑逐一解答:

1. 无论是扩展还是后端的代码都是开源的,先看代码再说嘛,如果要做偷鸡摸头的事情,其实没必要把代码开源、日志开放是吧?也写过几年代码,没有这么笨,如果有什么不舒服地方石锤就好,然后删掉扩展进行投诉。

2. 做这个事情的初衷很简单,vDaily 并不是今年才做的项目,扩展也默默服务了很多年,至少一直有个重构的想法,今年才抽出时间维护了一下重构了,之前也收到一些朋友咨询建议恢复 vDaily 。

3. 活跃度的进度条容易变黑是否和 vDaily 功能有关系?有一定的关系,但是主要的原因在于每几分钟查看一次未读消息,每次访问都会记录一点点活跃度,vDaily 获取的信息主要是当前浏览的主题基本内容(不含 cookie ,不含任何与用户相关的信息欢迎查看源码以及解压线上任何一个版本的扩展来质疑)获取完当前后可能会随机爬取几个主题,概率为 30%( https://github.com/sciooga/v2ex-plus-backend/blob/master/fastapi/tools.py#L68 )。

4. 是否会操作用户 cookie ?#140 举例的地方看得懂 python 的同学可以看看源码,是周报机器人自动登录后保存周报机器人需要的 cookie 为未来每周发帖使用的,无法操作前端,再次强调一下哈,前端没有操作任何 cookie 的地方,无法翻页的问题以及 502 的问题,大概率不是扩展导致的,也有很多没安装扩展的同学遇到了翻页 502 ,早两天还和站长沟通了这个情况 https://www.v2ex.com/t/937337

5. vDaily 加入扩展是 2.0.3 版本的时候,我看了下确实没有通知到大家这个功能是默认开启的,实在不好意思,但是通过上面的解释应该能明白这个功能只能爬取 v 站帖子的基础信息(没办法爬取站外的信息),同时也没有操作 cookie (需要操作 cookie 扩展就可以完成不需要后端支持),而且当时主要的目的是侧栏增加最近热门及高赞帖子的随机列表。对应的通知: https://github.com/sciooga/v2ex-plus/commit/2936025bf45b7b4b64a890a2e39443140b103f9a

6. goAccess 的访问是否是我们删除的?没有,这个服务确实不是很稳定时不时还需要手动启动用过的小伙伴应该知道,不想给大家看,连地址都不需要展示出来,欢迎监督。

7. 有小伙伴提到扩展是否允许自动化行为?这个也不好意思哈,开发这个扩展的时候我还在读书当时没注意这些功能是否违反规定,自动化的功能主要有:签到、检查新回复、检查关注者新主题(上了 cf ,2.0 无法实现,移除了),爬虫的工能是在浏览的时候提交当前页面的信息以及获取几个超过一定时间未更新的主题爬取更新( 30% 以内的概率)

目前在外地哈,后面会多留意消息,有什么疑问还可以 @ 我,我尽快回复,最后有朋友提到吃饭的问题,其实这个项目除了六年前有过几个月捐助二维码收入了几百块钱给了我很大的鼓励之外再也没有收入了,vDaily 的服务器也是热心朋友赞助的,我正在创业,时间似乎更加需要投入到非盈利的事情上,所以更新慢了很多,今年才抽出时间迭代,所以一切看源码不用质疑太多。
sciooga
    143
sciooga  
   346 天前
@HFX3389 @ljsh093 @lran9527

@Xianmua 感觉帖子内关系的用户还是不少的,如果 OP 愿意 append 一下我回复的楼层那可能更好,谢谢了。
Xianmua
    144
Xianmua  
OP
   346 天前   ❤️ 1
这位插件作者, 应该就是想要 v 站全站的数据,n 年前的数据都会爬取,貌似会遍历帖子 id 依次爬,这功能推出这么长时间了,v 站早被爬光了。刚看见这个功能的时候还犹豫了一下,多亏犹豫了一下,我也差点中招,这么多用户居然没人曝出来
Xianmua
    145
Xianmua  
OP
   346 天前
@sciooga 你另开一帖吧,正式说下
sciooga
    146
sciooga  
   346 天前
@Livid 实在不好意思,我在做这个功能之前也有考虑过会不会增加 V 站的压力,活跃度这块由于定时检查签到、未读消息每天已经固定有一定量的访问了(活跃度黑得很快),所以最开始我们向 sov2ex 的作者要了一份他爬取的存量数据,但是由于通过接口获取的数据没有主题和回复的数据信息( up 、点击量、收藏数、感谢数等)所以还是需要通过爬虫爬取 HTML 解析,由于我们扩展的用户量似乎不是很大 1W+ 所以在爬完历史数据后,我们不断的下调了爬取的任务数,感觉对 V 站的用户应该不会造成很大的影响,爬取的任务是浏览主题时第 1 、2 、3 分钟的时候如果标签页还打开时,每次会有 30% 的概率额外爬取一个信息,也就是浏览一个主题,最多会额外增加 3 个 get 请求。

很早以前煎蛋的站长也吐槽过很多新人拿煎蛋网练手造成了额外的压力,我们做这个小站点的初心很简单,平时比较忙又不想错过一些精彩的内容,所以爬爬主题做做排行,如果站长觉得这样确实不妥,我们也可以下线此站,谢谢。
pokon548
    147
pokon548  
   346 天前 via Android
@Xianmua 刚刚仔细看了一下,确实是我误判了代码逻辑,@sciooga 抱歉带来错误的结论判断。
sciooga
    148
sciooga  
   346 天前
@Xianmua #145 如果你是想把事情弄清楚,这个帖子热度很高 append 其实是很好的解决方案,也节约很多大家的时间,谢谢。
明天早上有空的话,我也会在周报内再次说明一下。
Xianmua
    149
Xianmua  
OP
   346 天前
@sciooga 先不说爬虫对不对了,做周报有必要爬历史数据吗? n 年前的数据也会爬,想好了跟大家解释,不用回复我。
看我帖子里这张截图,那是 19 年的帖子,原链接在这,https://www.v2ex.com/t/589681 ,你爬这个是为了做周报??
sciooga
    150
sciooga  
   346 天前   ❤️ 1
@Xianmua #149 因为不单单有周报,还有全站的排行,历史数据会随机提取一些到推荐内,所以历史数据更新会比较慢,最近的数据更新会快一些。
看你的语气倒是有不少怨气,大可不必,代码是开源的、项目也没有任何盈利,好好沟通可以把误会说清楚。
Xianmua
    151
Xianmua  
OP
   346 天前
@sciooga 先别扣帽子,把干的事儿跟大家说清楚,别跟我交待
Xianmua
    152
Xianmua  
OP
   346 天前   ❤️ 1
关于这个事儿我再说最后一段话,这个问题是这位作者的爬虫引起的,从来都不是我发的这篇帖引起的,不要把火往我身上引。
这个帖子已经很多层楼了,我也已经 append 了两次,图片很多内容很长,已经不便于阅读,我已经建议这位作者重新发一贴说明清楚,而不是按他说的,让我 append 他的话。

至于这位作者说的这句话,“这个帖子热度很高 append 其实是很好的解决方案,也节约很多大家的时间,谢谢”

我认为如果不存在分布式爬虫的功能,这个问题不可能存在,自然也就用不着什么解决方案。这个事情最后走向会怎样,永远不是我不“append”他的话导致的,不是我不“配合”他导致的,是他的分布式爬虫导致的,谢谢。
exhades
    153
exhades  
   346 天前   ❤️ 2
yxzblue
    154
yxzblue  
   346 天前
从不用这种第三方插件
sciooga
    155
sciooga  
   346 天前 via iPhone
@Xianmua 好的,不早了早点休息吧。
分布式爬虫如果带来了什么问题,明天早上有时间我也会另外开贴说明的,谢谢你提出的问题,我认为开源项目有监督是在帮助项目做得更好。
Livid
    156
Livid  
MOD
   345 天前
@sciooga 所以,目前( 2023 年 5 月 14 日),插件的爬取行为依然还在继续,是吗?
Livid
    157
Livid  
MOD
   345 天前
@sciooga 如果这个插件确实会给 V2EX 的后端每天增加几十万次很可能没有命中缓存的请求(因为是历史内容),那对于网站性能是会有影响的。

如果你不打算解决这个问题的话,那我们只能想办法从后端来做防御了。你在给我增加我不想要的工作量。
Livid
    158
Livid  
MOD
   345 天前   ❤️ 1
谢谢大家,我需要大家的帮助:

https://www.v2ex.com/t/939839
sciooga
    159
sciooga  
   345 天前
@Livid #157 因为我是今天凌晨才知道这个事,在半小时前(十点左右)已经停止了额外的请求。

扩展会获取当前浏览主题的信息(不会发起另外的请求),也会为了获取历史主题的信息发出额外请求( 30% 的情况),按扩展的活跃用户数量,之前每天估计有几万条请求在访问历史主题(现在已经停止)
Livid
    160
Livid  
MOD
   345 天前   ❤️ 13
@sciooga 所以,你可以通过你的服务器上的一个配置,来决定这个插件的用户是否跑抓取、及抓多少量?

你知道这听起来像是什么吗?
sciooga
    161
sciooga  
   345 天前
@Livid #156 逻辑并不是这样的,是用户浏览一个主题的行为才会有后续的爬取操作,如果用户一直不浏览主题那就不会有任何额外的请求产生(是指爬取数据的请求,签到、检查未读消息除外),用户浏览的主题多才会导致爬取的内容多,然后历史主题的下发是用户侧请求服务器的,目前关闭的是历史主题的下发。

然后这个功能同样是拥有独立的开关的,用户关闭 vDaily 后,既不会有推荐主题也不会有额外的爬取动作
MEIerer
    162
MEIerer  
   345 天前
看到了,已关
miv
    163
miv  
   345 天前
已卸载插件,没有明确告知,我就不用了。
这种损失了 v 站的利益,加了无效的请求。作为 v 站一员,我抵制这种插件。
Livid
    164
Livid  
MOD
   345 天前
@sciooga 用户的访问时段是集中的,这个你从你自己的 goaccess 日志中也可以看到。

由于插件的行为,在高峰时段,插件用户会造成额外的 3 倍的访问压力。
sciooga
    165
sciooga  
   345 天前
@Livid #164 实在是抱歉,目前已经关闭了历史主题的爬取,以后也不会开启

goAccess 中的日志
/api/topic/info?task=undefined 为当前浏览主题的数据提交,不产生额外请求
/api/topic/info?task=[:id] 为历史主题的数据提交,会产生额外的请求
/api/topic/task 为获取历史主题的爬取任务,这个是我们可以控制的,并且请求很多,但是大量返回的是空任务(之前 70% 现在停止了),而且另外的 30% 也要取决于是否有较长时间未更新数据的主题
herexf403
    166
herexf403  
   345 天前 via Android
大佬开始关注了
sciooga
    167
sciooga  
   345 天前
按照 OP 的要求,另开主题进行说明解释了 /t/939852
f1ynnv2
    168
f1ynnv2  
   345 天前
@Livid 肉机啊!
这作者真是 nb ,愣是轻描淡写的一句没事先通知大家加了爬虫功能想给蒙混过去。
chrawsl
    169
chrawsl  
   345 天前
@pokon548 这是后端的逻辑,不是插件读取 cookies
pokon548
    170
pokon548  
   345 天前 via Android
@chrawsl 是的,已经在下面的回复中说明了这一情况,很抱歉给你带来的麻烦。
chrawsl
    171
chrawsl  
   345 天前
@pokon548 感觉 v2 还是偏情绪输出而不是技术为主了 :-D
vitovan
    172
vitovan  
   345 天前
@Livid #160 这个听起来很邪恶啊。
fredcc
    173
fredcc  
   345 天前   ❤️ 1
以下摘自最高检官网文章:“爬取数据须遵规”:

着眼刑事法律角度规制数据爬虫,可以从爬虫行为和数据使用两方面入手:其一,明知没有授权而故意避开或强行突破网站或 App 的反爬虫技术设置进行的爬取行为,属于“未经授权”访问或获取数据,行为人应依法承担相应责任包括刑事责任。

以下是吃瓜群众角度的看法。
云控用户计算机上安装的应用,后台下发任务,执行分布式爬虫任务,绕过网站设置的反爬虫技术设置,影响用户正常使用、网站稳定运行或增大了网站的运行成本。这是个什么性质的行为呢,

开源只是工具不是护身符。
a282810
    174
a282810  
   345 天前
用过一段时间,偶然发现会有额外的定时网络请求,觉得有风险就停止使用了,现在转用油猴脚本
idblife
    175
idblife  
   345 天前
已删除,已举报
ToBeHacker
    176
ToBeHacker  
   345 天前
这。。。。已经算是一种木马了吧。。。。。
ijrou
    177
ijrou  
   345 天前
@zyronon #42 不得不说,非常棒
redtea
    178
redtea  
   345 天前
访问 V2EX 的绝大多数人都需要使用代理,安装了这个插件意味着成为肉鸡,要为了这个分布式爬虫消耗大量额外的流量。
bobsam
    179
bobsam  
   345 天前
谢谢楼主提醒,已卸载。
lifeintools
    180
lifeintools  
   345 天前
已卸载
xxl123456
    181
xxl123456  
   344 天前
有人用这个 V2EX- 超级增强插件吗?
zyronon
    182
zyronon  
   344 天前
@gzlock #135 现在回复失败会弹出原站的回复框。

回复失败的原因有很多....

需要更新到新版本
ys1992
    183
ys1992  
   344 天前
谢谢楼主提醒,已经卸载
blackmirror
    184
blackmirror  
   343 天前
好像只用过油猴的插件
Anna1879
    185
Anna1879  
   324 天前
谢谢提醒
1  2  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1058 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 34ms · UTC 19:33 · PVG 03:33 · LAX 12:33 · JFK 15:33
Developed with CodeLauncher
♥ Do have faith in what you're doing.