”“

实现目的

有些特定网站登录需要短信验证登录,服务端设置了一定得cookie有效时限,一旦长时间网页端没有活动就会导致cookie失效,需要重新短信验证登录,如果多人使用得话这样一来就变得很不方便。

实现思路

  • 通过修改服务端cookie设置实现,这种基本不可行,服务端不可控得情况下是不现实的:
    1:设置 Cookie 的过期时间:在服务器端设置 Cookie 的过期时间为一个较长的时间,比如几个月或者一年。这样,即使用户关闭浏览器,下次再打开时,Cookie 仍然存在并保持有效。

2:使用持久性 Cookie:持久性 Cookie 与会话(session) Cookie 不同,它们具有指定的过期日期和时间。在设置 Cookie 时,可以通过设置 expires 或 max-age 属性来指定 Cookie 的过期时间。例如,将过期时间设置为未来的日期和时间,使 Cookie 在指定时间之前都有效。

  • 通过使用者客户端实现,这种方法可行性高
    1:使用浏览器扩展程序:对于浏览器如 Microsoft Edge,您可以尝试寻找特定的浏览器扩展程序,这些扩展程序可以帮助您管理和保持会话或 Cookie 的持久性。在浏览器的扩展商店中搜索类似的扩展程序,然后按照扩展程序的说明进行安装和配置。

2:使用自动化脚本工具:您可以使用自动化脚本工具,如 Selenium 或 Puppeteer,编写脚本来控制浏览器行为。通过这些工具,您可以模拟用户的操作,包括登录和保持会话或 Cookie 的持久性。这些工具可以使用编程语言(如 Python)编写脚本,并与浏览器进行交互,模拟用户操作。

3:使用浏览器的开发者工具:浏览器的开发者工具提供了一些功能,可以帮助您在客户端上操作 Cookie。您可以打开浏览器的开发者工具,切换到 Network(网络)选项卡,并查看发送和接收的请求。从其中可以找到 Cookie,并手动修改其过期时间或值。请注意,这种方式可能比较繁琐,需要手动操作,而且不是持久性的解决方案。

实现方法

本文以Python自动化脚本在客户端实现:浏览器在无人操作的情况下可以按照设定的时间间隔刷新网页,使网页始终保持活动状态,不会被强制退出登录

以下脚本实现win系统EDGE网页在不活动时间超过3分钟就自动刷新一次,将以下代码保存为扩展名为py格式文件:

from selenium import webdriver
import threading

# 创建浏览器实例
driver = webdriver.Edge()

# 打开指定网页
driver.get("https://example.com")

# 定义刷新函数
def refresh_page():
    # 刷新网页
    driver.refresh()
    print("页面已刷新")

# 定义定时器回调函数
def check_activity():
    # 检查页面是否有活动
    activity = driver.execute_script("return document.hasFocus();")
    if not activity:
        refresh_page()
    else:
        print("页面正在活动")

    # 重新设置定时器
    timer = threading.Timer(180, check_activity)
    timer.start()

# 启动定时器
timer = threading.Timer(180, check_activity)
timer.start()

# 阻塞主线程,保持脚本运行
input("按 Enter 键结束脚本")

# 清理资源
driver.quit()

经过调试,程序可以顺利运行,达到想要的效果。
运行Python程序后会自动打开网页,当看到下面的提示内容,说明加载成功,登录后就不用管了,只要不关闭页面,登录始终是有效的:
Selenium.png

实践注意事项

  • win系统下正确安装Python,自行GOOGLE
  • 安装自动化脚本工具如 Selenium,使用命令直接安装
pip install selenium
  • 安装浏览器驱动程序

1:更新 Microsoft Edge 浏览器:
确保您使用的 Microsoft Edge 浏览器是最新版本。通过更新到最新版本可以解决一些已知问题和错误。

2:更新 Chrome 浏览器驱动程序:
如果您的脚本是基于 Chromium 内核的浏览器,如 Microsoft Edge(基于 Chromium),请确保您使用的 Chrome 浏览器驱动程序是最新版本。您可以从 Chrome WebDriver 下载页面https://sites.google.com/chromium.org/driver/downloads获取最新的 Chrome 浏览器驱动程序。

  • 将浏览器驱动文件路径添加到系统环境变量

1:打开控制面板并转到“系统和安全”>“系统”>“高级系统设置”。
2:在弹出的“系统属性”对话框中,点击“环境变量”按钮。
3:在“系统变量”部分下方,找到名为“Path”的变量,并进行编辑。
4:在“编辑环境变量”对话框中,点击“新建”按钮,然后输入驱动文件的完整路径(包括文件名和扩展名)。
5:点击“确定”按钮,保存更改。
5:为了使 PATH 环境变量的更改生效,您需要重新启动任何打开的终端窗口或命令提示符窗口。

参考

最后编辑:2023年05月17日 ©著作权归作者所有

发表评论