大佬们,关于 puppeteer 的问题

2021-02-02 19:05:26 +08:00
 wersonliu9527
puppeteer 可以通过 connect 接管已创建的 chrome 实例,那么我手动创建一个实例,对某个网站加密部分断点,此时 console 可以调用加密函数,那么此时让 puppeteer 来接管这个状态,是不是能解决一部分网站的加密问题呢?(以上针对的是部分页面加载完成,console 无法调用加密函数的情况)
2113 次点击
所在节点    Python
5 条回复
TanMusong
2021-02-02 19:12:47 +08:00
加密???匿名函数?
ClericPy
2021-02-02 22:04:44 +08:00
第二次见这种需求, 上次还是去年面试...
cdp 里面可以直接跳到 Debugger.Location 然后做一些其他事情, 不过如果拿到 js 流量, 直接正则里面代码不好么, 随便注入点什么
wersonliu9527
2021-02-03 12:35:49 +08:00
@ClericPy @TanMusong 假定有个网站 js 加密比较复杂无法逆向,但是在浏览器调试模式下,浏览器 Console 界面可以直接调用加密函数,页面完全加载完毕后,浏览器 Console 无法调用加密了.我的设想是让 puppeteer 接管调试模式下的浏览器,调用加密函数 0.0
vone
2021-02-03 15:19:50 +08:00
你无法调用加解密函数的原因不是因为没使用 Console,而是因为网页加载完成后可用有 js 代码把加解密函数的全局变量引用指向 null 了。

所以在他清除引用之前,使用 page.evaluate 搞一个新的闭包或者全局变量引用一下对应的函数,保证函数不被清空应该就可以正常调用了。


你这操作太不专业,为啥不读一下 js ,把加解密逻辑剥离出来,然后用 node 调用加解密 。
ClericPy
2021-02-04 20:33:46 +08:00
@wersonliu9527 匿名函数或者闭包函数确实在 console 里或者 window 对象里拿不到, 所以才建议的直接 cdp 上拦截流量替换 js 文件做注入... 调试模式断点那些东西要对 js 对象做操作, 又要找 node 又要找代码 ID, 挺折腾的

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

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

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

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

© 2021 V2EX