V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
wersonliu9527
V2EX  ›  Python

大佬们,关于 puppeteer 的问题

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

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


    你这操作太不专业,为啥不读一下 js ,把加解密逻辑剥离出来,然后用 node 调用加解密 。
    ClericPy
        5
    ClericPy  
       2021-02-04 20:33:46 +08:00
    @wersonliu9527 匿名函数或者闭包函数确实在 console 里或者 window 对象里拿不到, 所以才建议的直接 cdp 上拦截流量替换 js 文件做注入... 调试模式断点那些东西要对 js 对象做操作, 又要找 node 又要找代码 ID, 挺折腾的
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2558 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 15:40 · PVG 23:40 · LAX 07:40 · JFK 10:40
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.