gpt4 book ai didi

python - 使用 Python 在 Firefox 中打开多个选项卡

转载 作者:行者123 更新时间:2023-11-30 23:19:46 24 4
gpt4 key购买 nike

我花了大约一分钟的时间在 Firefox 中输入我通常早上第一件事查看的 10 到 15 个网站的名称。这是对我时间的“相当大”浪费,那么为什么不自动化这个过程呢?在 Firefox 启动时打开每个选项卡并不是一个好的解决方案(因为我只检查这些页面一次),所以我认为一个小的 Python 脚本应该可以解决这个问题:

import webbrowser
with open('url_list.txt', 'r') as url_file:
for url in url_file:
webbrowser.open(url)

url_list.txt 文件仅包含以换行符分隔的页面 URL。

我面临的问题是这个脚本的行为取决于我是否已经启动了 Firefox。如果 Firefox 正在运行,列出的 URL 将按预期在单独的选项卡中打开。如果 Firefox 没有运行,每个 URL 都会在一个窗口中打开,这会破坏我的工作流程。为什么会发生这种情况?

最佳答案

webbrowser 在后台工作的方式包括创建 subprocess.Popen 对象。这有两个与报告结果直接对应的潜在影响:

  • 如果 Firefox 已打开,当 webbrowser 检测到 Firefox 已在运行时,它会向 Popen 发送正确的参数,这会导致每个 URL 在当前 Firefox 窗口。

  • 如果不存在 Firefox 进程,则会向 Firefox 发出多个并发请求以访问传递的 URL。由于不存在窗口,因此无法创建选项卡,Firefox 的最后一个选项是在单独的窗口中显示每个链接。

我通过在调用 Firefox 时简单地加入所有 URL 来解决这个问题。虽然这有一定的限制(指命令字符串的字符限制),但它是一个非常简单且有效的解决方案:

import subprocess
firefox_path = "C:/Program Files/Mozilla Firefox/firefox.exe"
cmdline = [firefox_path]
with open('url_list.txt', 'r') as url_file:
for url in url_file:
cmdline.append(url)
subprocess.Popen(cmdline)

关于python - 使用 Python 在 Firefox 中打开多个选项卡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25920455/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com