首页 > 解决方案 > 在 Python 3 中按顺序打开列出的 URL?

问题描述

我正在尝试按照列出的顺序在 Web 浏览器中打开一组 URL 链接,但是每次运行以下代码时,顺序都不同。我是脚本新手,但了解列表保持顺序,这是我在下面使用的,所以我对它为什么不起作用感到困惑。我怀疑这可能是由于某些页面的加载时间造成的,那么我该怎么做才能确保按列出的顺序打开各个选项卡,并规避任何页面加载时间对顺序的影响?

import webbrowser

urls = ["google.com", "yahoo.com", "bing.com", "duckduckgo.com"]


firefox_path = "C:\\Program Files\\Mozilla Firefox\\firefox.exe"
webbrowser.register('firefox', None, webbrowser.BackgroundBrowser(firefox_path), 1)

for i in urls:
   webbrowser.get('firefox').open_new_tab(i)

标签: python-3.xurlpython-webbrowser

解决方案


您的代码是正确的,但是 for 循环太快以至于webbrowser无法意识到 firefox 已经被打开。

只需在你的 for 循环中添加一个延迟,它就会解决问题:

import webbrowser
import time

urls = ["google.com", "yahoo.com", "bing.com", "duckduckgo.com"]


firefox_path = "C:\\Program Files\\Mozilla Firefox\\firefox.exe"
webbrowser.register('firefox', None, webbrowser.BackgroundBrowser(firefox_path), 1)

for i in urls:
    webbrowser.get('firefox').open_new_tab(i)
    time.sleep(1)

推荐阅读