浏览器爬虫再进化

327 天前
sofukwird  sofukwird

通过 http proxy server 暴露浏览器资源, 基于 webrtc, 是直连, 无需二次中转

具体请看视频演示: https://youtu.be/czWW5xlfcS8

当前测试版目标用户为使用 WireGuard 的 linux 用户 核心源码暂未公开, 建议在虚拟机中尝试. xhe-vpn 目前仅支持 linux(windows 端需求反响强烈的话速度肝出 windows 端)

git 仓库: https://github.com/remoon-net/xhe-webvpn 社区讨论: https://github.com/remoon-net/xhe-webvpn/discussions 问题反馈: https://github.com/remoon-net/xhe-webvpn/issues


相比上次的版本去除了中心化, 虽然导致了配置更加繁琐, 但独立部署更简单了

9707 次点击
所在节点   程序员  程序员
50 条回复
Pythoner666666
Pythoner666666
327 天前
试试 RPA ,我觉得没有比这个更好用的了。
flyqie
flyqie
327 天前
你这项目是给黑灰产用的吧。。

稍微靠谱点的爬虫项目哪有用这种模式的。。puppeteer 的很多优势你这种架构根本做不了。。

被黑灰产拿来改改当肉鸡用倒是很合理。。
c1985382
c1985382
327 天前
@Pythoner666666 一般 RPA 用啥软件?
sofukwird
sofukwird
327 天前
@flyqie 你是看懂了的,这种架构对黑灰产确实非常好
但工具只是工具,是好是坏要看人怎么使用它
itIsUnbelievable
itIsUnbelievable
327 天前
@sofukwird 是浏览器端和你本机建立了 wg 通道吗?请求所有网站都可以不用 cookie 吗?
可以大麦抢票吗
kuanat
kuanat
327 天前
如果我没理解错的话,这个实现的是挺厉害的,只是应用场景非常受限。

从功能上说,相当于被注入的页面向外提供 http 代理,该代理会复用浏览器环境,也就继承了相关 cookies 。

使用这个方案,相比基于 webdriver/cdp 的方式,可以省去提取 cookies 、模拟登录的过程,通过人工在图形界面上操作一次即可。

比较容易想到的局限在于:

- 网站有多处或者基于访问频率的人机检测,就需要大量人工介入(甚至难以介入,因为通过代理触发的人机检测并不会显示在浏览器界面上)

- 目标接口需要额外访问参数,一般反爬措施都会利用 vmp 混淆 js 代码来生成可以被服务器后端验证的动态参数

如果我说错了还请 OP 指正一下,因为我确实想不到更好的应用场景了。
stinkytofu
stinkytofu
327 天前
@kuanat #26 你这么一解释我懂了, 就相当于软件逆向时注入进程了, 通过代理,可以使用网页当前所有的资源和权限。 那这个应用场景也很大啊, 特别是基于当前网页做一些功能增强,逆向啥的, 非常适合搞灰产。
sml2h3
sml2h3
327 天前
可以考虑走 chrome remote debugging 的方式哈,比如 DrissionPage 这个库~
Rache1
Rache1
327 天前
@sml2h3 #28

好家伙,这个关键字往 Google 一丢,4 个赞助商广告,第 5 个才是 Github

sml2h3
327 天前
@Rache1 正常呀,因为这个方式好用而且很多人不知道哇,基本上没有指纹,秒过各大防御,API 也是 chrome 原生 API ,至于 DrissionPage 这个 py 库嘛也是一股清流,文档写的真好
sofukwird
327 天前
@kuanat 是的,就是这样(您说的好清晰呀)。基于访问频率的检测确实难过,目前是降低访问频率避免触发

初始的应用场景是通过浏览器向其他人提供服务,如 p2p 文件共享,p2p 聊天,p2p 游戏联机
fork3rt
327 天前
@sml2h3 基本上没有指纹 这个不太理解哎, fonts / canvas / audio 这些常见的指纹 DrissionPage 不还是固定的吗?
07aPzknB16ui9Cp3
327 天前
屌的,看来 WebRTC 能实现不少神奇效果
Rache1
327 天前
@sml2h3 #30 🤩 看了一会儿,暂时没有使用场景,先收藏
cdlnls
327 天前
我之前也做过一个类似的浏览器爬虫。。。
cdlnls
327 天前
实现方式不一样,使用方式不一样,都是基于浏览器的
Jirajine
326 天前
@kuanat #26 这个应该等同于把浏览器里的 fetch 通过 rpc 暴露出来,简单点实现几十行代码都不用。其实意义不大,浏览器本身就可以通过 api 控制,那些 abuse as a service 厂商搞的花活比这恶心多了。
qweruiop
326 天前
很叼,一看就是专业的。这个场景肯定是。。。
rozbo
326 天前
没明白什么优势,如果是浏览器环境,那个也没有处理浏览器指纹呀,直接用 playwright/puppeteer 不就直接完了?
反正都是需要处理指纹和特征的。
怎么说呢,小白用不了,大佬没必要用。。。小项目用不上,大项目也用不了。。
sml2h3
326 天前
@fork3rt 指的是没有那些特殊的自动化浏览器的特征

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

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

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

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

© 2021 V2EX