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

有一个 web 页面,需要一系列登陆验证。如何实时刷新并获取最新的数据?

  •  
  •   xinmans · 8 天前 · 918 次点击

    我从浏览器打开,登陆之后,可以保持 session 10 来天,然后页面会自动定时刷新

    现在有没有办法开着浏览器来定时获取页面的数据?

    通过 python 调用 webdriver 没办法搞定登陆问题,所以希望是浏览器插件这种方式? 猴油脚本有可能么?

    需要支持把获取的数据定期发送出来,或者写到数据库( mysql 等)

    11 条回复    2024-10-23 22:34:26 +08:00
    shadowyue
        1
    shadowyue  
       8 天前
    你这提供信息这么少🤣 算命是吧
    我来帮你掐指一算,你说的自动刷新,大概率是你登录过期了,请求接口的时候触发了前端登录过期的判断,让你跳转到登录页面了。
    你想绕过登录过期这个逻辑不太可能,这都是服务端的判断了。
    还是想办法能做到自动登录,可能性高一点
    xinmans
        2
    xinmans  
    OP
       8 天前
    @shadowyue 是个论坛的某个板块,有很多帖子。

    自动刷新是指有新的帖子进来,会自动展示。而不需要重新登陆,有 session 会话保持。
    sentinelK
        3
    sentinelK  
       8 天前
    没太看懂楼主的需求,楼主的意思是想爬一个网页的数据?
    无头浏览器是否契合楼主的需求?
    Vegetable
        4
    Vegetable  
       8 天前
    所以你想做的是

    1. 手动打开浏览器,访问目标网站,登录,进入数据页面挂机
    2. 页面自己获取最新数据时,某个程序将这个数据保存下来

    方案有很多,webdriver 是可以的,只要你嵌入一个手动登录过程就行。
    浏览器插件和脚本都可以,不过需要对应的外部程序配合接收数据
    其他方案:

    代理方案,使用 mitmproxy 代理特定网络,浏览器挂代理之后,逻辑写在代理里 https://github.com/mitmproxy/mitmproxy/issues/1487
    xinmans
        5
    xinmans  
    OP
       8 天前
    @Vegetable webdriver 无头浏览器搞过不需要登录的,比如爬一些开源论坛。但是需要登录的没有搞过,有没有 sample 代码可以参考下?感觉这个方案最成熟。
    Ausmo
        6
    Ausmo  
       8 天前
    搜一下 puppeteer 或者 playwright
    Vegetable
        7
    Vegetable  
       8 天前
    @xinmans 你只需要将无头浏览器换成有头的,比如 chrome 。
    到了登录页面你先登录一下。登录完了脚本继续工作就行。

    你可能没意识到 selenium 是控制浏览器的,不是专门控制无头浏览器的,只是很多场景不需要头而已。

    随便搜索的例子: https://www.cnblogs.com/c2soft/articles/13019429.html
    xinmans
        8
    xinmans  
    OP
       8 天前
    @Vegetable 懂了,那需要在带图形界面的环境里弄了,我之前主要在命令行下跑无头。我在 windows 下搞一套即可。
    slowhand
        9
    slowhand  
       8 天前
    试试浏览器插件:automa
    imicksoft
        10
    imicksoft  
       8 天前
    用 aardio 的话,使用用 web.view2 库开发内置浏览器组件的程序,像以前调用 webbrowser 一样,
    然后定时执行 js 获取数据,保存到本地或插入 Mysql 数据库
    xinmans
        11
    xinmans  
    OP
       8 天前
    用有头 webdrvier 搞定了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5433 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 01:25 · PVG 09:25 · LAX 18:25 · JFK 21:25
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.