CEO 发现到企业微信上发任意 http url 能够以卡片的形式显示。 卡片会展示该 url 的 icon 、title 、description 、keywords 几个信息。 CEO 觉得这个功能很棒,想在公司自研 IM 上也达到类似效果。
自研 IM 挂在我的直属 TL 名下。 CEO 将想法丢在公司大群里,说企业微信的功能很方便,问能不能做。 TL 马上答应下来,他跟 CEO 差了几级,平时根本说不上话。
TL 在找人开发时卡住了,没人愿意接这个需求。 原因是这需求要爬任意 url ,有风险,可能不合规。 TL 问了法务,法务给的答复也模棱两可,法务让技术测判断。 但是 TL 已经答应了 CEO ,再反悔,会留下不良印象。 TL 在公司表现不错,也很年轻,不希望在 CEO 面前丢分。
在实在找不到人的情况下,TL 找到我,希望我能接。 但我也不想碰这个需求,但我跟他共事 7 年了,拉不下脸面。 但他以私人身份求我,甚至承诺把团队顶格绩效给我。 我还是想拒绝,但又怕得罪人,应该如何拒绝?
类似案例: 有家公司爬深圳市 ZF 网站上的公开数据。 但程序有 bug ,出现了死循环,导致以近 100qps 发请求。 最终把 ZF 网站打挂了,事情发生在周末,ZF 人员在休假,无人恢复,挂了一周末。 引发了很多市民的投诉,最终,技术总监和程序员都进去了。
1
NevadaLi 3 天前 via iPhone 4
高危需求要和对方直截了当的表明情况,对方还没有意识到问题的严重性。如果你俩关系不错,建议也劝他别因小失大。
关键问题太委婉会让对方意识不到危险,到时候真出事就麻烦了。 |
2
xzour 3 天前 via Android
可以找找有没有第三方卖这种数据的。不一定要自己亲自爬
|
3
kong0bbs OP 不是静态数据,而是发任意 url 要抓取 tkd 信息展示成卡片,包括公司内网 url 和外网 url 。
|
4
lloovve 3 天前 via iPhone
直接跟 ceo 反馈啊,这又不是技术问题,不要想着用技术解决
|
5
xzour 3 天前 via Android
@kong0bbs 强大的第三方其实也是实时的(比如企查查,爱企查这种爬工商信息的,不也卖接口)。自己内部的网站那就简单,自己对接就好。如果百度卖这种数据,比你自己爬还强大。由于这个不像企查查这种有商业机会,估计也不太好找,但可以去试试做搜索引擎的服务商。
|
6
dji38838c 3 天前
这个只是一次性对一个 URL 进行一个 GET 请求,很多国外 IM 都有,应该不算有合规问题吧?
|
7
renmu 3 天前 via Android 2
这种信息直接请求 html 就能拿到而且本来就是给浏览器或者外部应用看的,我觉得不涉及所谓爬虫
|
9
ETiV 3 天前 23
我觉得可以接,因为标准是开放的,叫 open graph ,https://ogp.me/
比如现在这个帖子,查看 HTML 代码,就会看到下面这些: <meta property="og:locale" content="zh_CN" /> <meta property="og:type" content="article" /> <meta property="og:title" content="如何拒绝高危需求又不得罪人? - V2EX" /> <meta property="og:description" content="职场话题 - @kong0bbs - CEO 发现到企业微信上发任意 http url 能够以卡片的形式显示。卡片会展示该 url 的 icon 、title 、description 、keywords 几个信息。CEO 觉得这" /> <meta property="og:url" content="https://www.v2ex.com/t/1052841" /> <meta property="og:site_name" content="V2EX" /> 企微也不是每个 URL 都有卡片展示的,抓不到的就不显示呗 |
10
xzour 3 天前 via Android 4
看上面的回答,不涉及爬虫,顶格绩效,可以考虑接下。
|
11
potatowish 3 天前 via iPhone
调第三方接口,不要自己去抓取,出了事第三方兜底
|
12
forvvvv123 3 天前
企微是怎么实现的,怎么解决的合规问题?
|
13
abigeater 3 天前
以客户端 IP 发送的请求,不算高危需求吧。看很多 IM 都实现了
|
14
x86 3 天前
这种只是取个 meta 头信息不算爬吧
|
15
bigfei 3 天前 via Android
可以从客户端请求发,涉及不到爬虫
|
16
kong0bbs OP 我们 im 是 web 套壳,没有安卓/ios 开发,前端说没法子跨站发请求。
而且前端发请求会导致 ip 特征变得很明显,都是公司出口 ip ,很快就会被封。 |
17
kong0bbs OP 前端发请求,同源策略过不去
|
18
toesbieya 3 天前
web 套壳那让基座写个请求方法给 web 调不就行了吗
|
19
vanleon 3 天前 5
先做公司侧的 url ,今年做完了拿定格绩效,然后明年跑路
|
20
iOCZS 3 天前
不写代码就是最安全的
|
21
RicardoY 3 天前
这不是现在每个 IM 几乎都有的功能吗(
|
22
ksmiloLove 3 天前
这个不是网站自己配置的展示信息吗?怎么要 im 去爬啊?
|
23
kong0bbs OP 先做公司侧的 url ,今年做完了拿定格绩效,然后明年跑路
-------- TL 为了让 CEO 满意,要求全都支持。 web 套壳那让基座写个请求方法给 web 调不就行了吗 -------- 今年裁员,把安卓、IOS 的老司机都干掉了,剩下几个应届生,做不来,只能维护老代码。 |
24
4ark 3 天前 via iPhone
感觉多虑了,照你这么说任何代码都有可能因为 bug 把服务器或者客户端干崩
|
25
ReactRails 3 天前 via iPhone
点进来之前还以为是什么涉及资金或者黑客攻击的需求,结果就这点小事。你的风险意识很好,但这顶多算个中等风险吧。国内国外的所有 IM ,不管是微信 QQ 还是钉钉飞书,国外的 WhatsApp Line telegram 都有这个功能,你把风控还有告警弄好,问题不大的
|
26
kong0bbs OP 团队里面其他人不敢做,让我有点慌。
我其实做了个原型: 1 、用阿里云的 Serverless+Puppeteer 无头模式跑爬虫逻辑,Serverless 大概有 10 个公网 IP ,小规模使用问题不大。 2 、在 Serverless 上挂 NAS 盘,基于 NAS 盘做文件缓存,缓存 URL 和解析结果。 3 、如果调用量比较大,可以在 Serverless 上套弹性公网 IP 池,或者到某宝买代理,然后在 Puppeteer 上配代理。 新申请 1 个阿里云账号,把这块业务挂在单独账号上,跟公司主账号切割开。 这 1 套 3 天就写完了,但是不敢上,怕摊上事儿。 |
27
ETCartman 3 天前 3
转发到企业微信再从企业微信里取 :)
|
28
Remember 3 天前
你不要用爬虫,用客户端访问一下,展示就行了。
IM 基础功能,这怎么可能有风险? |
30
forgottencoast 3 天前 3
|
31
kong0bbs OP 你这套做法摊上事不是正常吗,都用上什么 IP 池,代理。
用上面人说的客户端请求处理,而且出错就只显示链接,不重试,出不了事 -------- 这个思路不错,但是今年老板把安卓/IOS 团队干掉了, 现在是前端 Web 团队做客户端,App 就是 Web 套壳, 原生侧就只剩几个新手在维护老代码。非常尴尬。 |
32
kong0bbs OP 而且,我们 IM 还有 Web 端,直接在 Chrome 里运行。
Web 端用户蛮多,这个方案在 Web 端跑不了。 |
33
watzds 3 天前 10
真厉害啊,先把这个说得风险多大多大,然后接了拿个好绩效,学习了
|
34
bagel 2 天前
思路从头就错了,压根不涉及到爬虫。你自己去抓包看看,企业微信的实现就是在客户端抓取的,发消息 baidu.com 能抓到向百度域名的请求,就是解析首页 html 取几个 meta 字段和一个 favicon 。再怎么考虑法律风险,最多加一个白名单,备案域名才抓取,备案域名定时全量下发客户端。
|
35
kong0bbs OP 客户端发请求的话,Web 端解决不了啊,浏览器又不让跨域。
|
36
kong0bbs OP Web 端解决不了啊,浏览器又不让跨域。
|
37
kong0bbs OP 产品形态要求 IM 功能在各端对齐,而且 web 端有不少用户。
除非是 web 端把请求发给服务端,服务端转给移动端。看起来似乎可行,我不清楚能不能这么干。 |
38
Goooooos 2 天前 via Android
客户端请求的话那就难讲了,几百人一起请求,对方服务如果被搞坏了,那你们就有问题。一般都是服务端请求。
|
39
lneoi 2 天前
如果你是客户端里面包含第三方地址,导致第三方请求数量过大而出问题,那责任应该也在你这儿。所以前后端做应该都一样?
|
40
NDHT 2 天前
听说过哪个,好像是破坏计算机信息系统罪?个人觉得没有主观故意,判刑有点牵强。
有第三方爬虫公司,比如深圳的八爪鱼,好像可以直接调用让人家去爬,真搞出风险也是别家的问题。 |
41
rabbbit 2 天前
1 设置白名单,仅显示白名单内的网站。至于哪些网站在白名单内,让他们自己去判断。理由就说可能会抓取到违法网站。
2 上面说了,套壳的应用用基座发请求。没人就找外包。不批就实现不了。 |
42
tetora 2 天前
再外包一次囖
|
43
Atma 2 天前 via Android
对的,楼上说的,白名单
|
44
chanChristin 2 天前 via iPhone
能请求多少是多少,其他的再排期,就说第一期先搭建基础框架,后面再慢慢加,后面啥时候加还不是你说了算。
|
45
Felldeadbird 2 天前
curl 读一次网站,入库就就不在请求不行吗?然后单个域名每分钟限制请求次数 + 1 小时总请求次数限制。
再不行还有一个办法,找一台电脑不关机,开着浏览器。浏览器写一个扩展,读取需要打开的网站,然后扩展把打开的网站信息发给服务器。 这可是真实访问。 |
46
horizon 2 天前
这当然从客户端请求了,然后缓存起来。
走服务端就是爬虫了。 |
47
wbrobot 2 天前
@forvvvv123 企业微信有各种黑白名单保证不会显示 h 网,暴力 x 腥等
@leconio 实际上 @ETCartman 说的反而是最简单可行的方案,做个企业微信机器人往私人小群里发,然后看看有没有办法获取到消息,我记得机器人应该可以获取到,不知道 URL card 行不行。 拿到的话就拼接做 card ,拿不到,就去掉超链接,发成文字,十分安全可靠。 |
48
BeiChuanAlex 2 天前
走客户端不就好了
|
49
akira 2 天前
看着是大公司,怎么感觉做法又是小作坊那一套...
|
50
ETCartman 2 天前 1
|
51
zbinlin 2 天前
这种爬有什么问题,符合 Robots.txt 就行了。
|
52
Pastsong 2 天前
有 Robots.txt 就可以爬
> TL 为了让 CEO 满意,要求全都支持 你们 TL 才是最大的问题 |
53
klo424 2 天前
我领导经常想让我搞高危需求,因为他太菜搞不定,我都是直接拒绝,并告诉他这么做犯法。
|
54
bk201 2 天前
没明白需要什么爬虫,如果企微能做,别的就能做。
|
55
bk201 2 天前
web 端跨域,本地服务转发不就好了
|
56
sujin190 2 天前 via Android
手机端直接请求就行吧,为啥要爬,用户端直接访问不存在不合规问题,只要你别想着搞什么伪造会话登录什么的,这多好的绩效干嘛不要,企微说不定也是前端直接请求的,否则太耗资源了不值当
|
57
agostop 2 天前 via Android
按 34f 说的做,应该没问题,再建议还是客户端搞,用代理+缓存的思路,代理解决跨域问题,缓存解决并发多人请求问题
|
58
InDom 2 天前
给你换个思路,你做一个开源项目,实现类似的功能。
然后把仓库给 TL ,他自己找人调包使用。 现在,TL 的任务完成了,仓库也和你没啥关系。 |
59
shawnsh 2 天前 via Android
CEO 闲着没事干要当产品了?
|
60
vmebeh 2 天前
发链接的客户端来生成卡片,不过就可能会伪造卡片,会有个安全风险
|
61
munan56 2 天前
这种预览为什么要爬虫啊
|
62
Lockeysama 2 天前
要么试试嵌入一个魔改的 WebView 的思路?
|
63
abc1310054026 2 天前
你是不是不懂技术啊,WebView 关掉 CORS 策略,Google 查查都知道怎么弄。Open Graph 的数据访问下 HTML 甚至都不用你加载 JS 就能拿到。
你把需求说的有多高难度跟你 leader 说去,在这里说不是浪费大家时间吗 |
64
abelmakihara 2 天前
让应届生学下套壳的插件怎么写不就行了
这么基本的又不是多复杂的插件 以前做套壳的时候 复杂的是有原生的 简单的功能还不都是前端自己写插件 |
65
zyPro 2 天前
飞书貌似有这个功能了....法律问题应该还好吧
|
66
rbe 2 天前
就是 og 协议,解析一下 html head 部分的几个 meta 标签就行,一般都是实时解析的。怎么被你说的这么吓人。🧐
|
67
encro 2 天前
这种不违背,风险较少,你只是获取页面 title 。
需要算力资源较多,比如页面现在都是前后端分离,你爬取需要模拟 js 执行。 |
68
fulvaz 2 天前
- - 你做需求不调研竞品吗,竞品能做,你就去做呗。
|
69
sunpj 2 天前
webview 跟 native 可以通过 jsbridge 搞的 跟是不是前端套壳没关系
|
71
stillsilly 2 天前
哪里高危了……
|
72
zhw2590582 2 天前
一次 get 请求还好吧,而且你可以设置数据缓存一天,问题不大
|
73
supuwoerc 2 天前
和楼上持相同意见,open graph 和 meta 就能获取到基本的信息了.... nextjs 一大堆 seo 优化不都是这方面的,感觉不涉及爬虫啊...
|
74
supuwoerc 2 天前
<meta property="og:title" content="title" />
<meta property="og:type" content="video.movie" /> <meta property="og:url" content="https://xxx.net/" /> <meta property="og:image" content="https://xxx.net/" /> @supuwoerc |
75
loryyang 2 天前
这个我看下来,没啥大毛病,这个和爬虫区别很大的,你需要的时候实时请求一下,没多少量的
|
76
edotac 2 天前
新手不会就学呀,是多么难的技术吗。。。
|
77
linxb 2 天前
你自己把需求想复杂了吧,这不就是一个 URL 高亮与内容关键词识别的需求吗,你可以看下有个开源 IM ,mallchat 的实现方案,只是简单的抓包分析而已,哪有什么高危风险
|
78
gaopu 2 天前
这么个功能就顶格绩效,就...玩一样
|
79
robotdiy 2 天前
这跟爬虫有关系吗???
|
80
jydeng 2 天前
没有法律问题,飞书之类的 APP 都支持,完全可以做。
|
81
xiaochocking 2 天前
@kong0bbs #35 我想知道 Web 发 GET 请求跨啥域
|
82
xiangyuecn 2 天前
拿服务器去爬,一抓一个准
|
83
vevlins 2 天前
爬个 meta 就行,你不行让你 leader 外包给我做吧。
这种东西有啥风险,你走到街上还有可能因为莫须有的问题被抓寻衅滋事呢,吃个水果还有可能中毒,只要 ROI 可观,都可以做 |
84
dingyaguang117 2 天前
怪不得国内经济不好,连底层打工人都人人自危
|
86
joyhub2140 2 天前
不用拒绝,你就说自己也搞不定,这时候认怂对自己是有好处的。
|
88
yufeng0681 2 天前
我不想做的需求,就会找各种理由拒绝。 全文看下来,就是缺人,有爬虫风险会背锅。
1 、网页请求量根本上不来 1.1 、一个群发的 url ,没几个人看,上不来量 [相对网站的访问量] 1.2 、后端服务去取 url 要的卡片信息,只需页面对应 html , 不需要 html 里面的 js 图片等资源,对网站进一步降低了访问量 1.3 、群发的 url 又不是一家网站的 url ,一天发个 200 条 url 消息,估计一个网站的 url 也就 10 条了不得了,这个量算啥? 2 、服务器方案的好处 2.1 、可以做白名单,黑名单。不会出事 2.2 、可以获取到授权才能获得的信息 [登录类的,内网类的,翻墙类的] 2.3 、可以随意调整信息字段,如果还有其他定制需求 ,比如能直接打开对应 app ,而不是体验差的网页 3 、扩展性好 3.1 、手机的短信 app 已经好多集成了 push 功能, 这类功能很像 push 特性, 非常方便 IM 的运营, 运营是能带来商业价值的。 |
89
jdkxnktkdkxod 2 天前
@kong0bbs
我们 im 是 web 套壳,没有安卓/ios 开发,前端说没法子跨站发请求。 而且前端发请求会导致 ip 特征变得很明显,都是公司出口 ip ,很快就会被封。 ———————— 这一段话就暴露了你们有多菜 |
90
wwlzz 2 天前
这个是 open graph 公开协议,没有啥风险吧
|
91
hxysnail 2 天前
配个域名白名单,先实现内网 url ,这样对 CEO 就有交代了;
然后把外网可能涉及的风险提出来,让 CEO 拍板; CEO 同意就让运维调整配置,去掉白名单控制; 这样操作下来还跟写代码的有半毛钱关系? 程序配置化,文档注释充分揭示风险,至于别人想怎么配,怎么用,那是别人的事 |
92
chairuosen 2 天前
一句话,想法很好,想得太多
|
93
caiji11 2 天前
法务让技术测判断 你们公司挺抽象
|
94
MENGKE 2 天前
这跟爬虫有什么关系,有啥法律问题?就发个请求这个网址,然后解析下<head>部分显示出来就可以了
|
95
Torpedo 2 天前
你就单独请求一下网址,然后根据 url 做 id ,只解析 html 的头里那几个标签就可以了。你这点请求量一般也不会被反爬的
这个功能还可以往后做。像飞书里有些网址发到聊天有更详细的展示,这种就是有个配置平台,可以配置解析。所以做完这个后面还可以针对内部网站做定制化 |
96
fenddddddda 2 天前
分多期做, 一期 把 CEO 常用的几个 url 搞定.. 微信域名啥的,二期以后再说吧。
|
97
me1onsoda 2 天前
这看起来是个前端的工作,但 op 好像又不是前端。这有点意思,op 说了一大堆风险,结果不是你做,TL 答应把顶格绩效给你🤣
|
98
x66 2 天前
如果有人发一个链接到一个 2000 人的大群,那这个链接就会被请求 2000 次?
|
99
Moierby 2 天前
你要后端封装一个接口,简单的 curl 请求就可以拿到目标网站返回的 html ,把 favicon 和 meta 信息发给前端,不就可以了
|