11

我正在使用 Python 收集一些信息,构建一个非常简单的 html 页面,将其保存在本地并使用 webbrowser.open('file:///c:/testfile.html') 在我的浏览器中显示该页面。我每分钟检查一次新信息。如果信息发生变化,我会重写本地 html 文件并想重新加载显示的页面。

问题是 webbrowser.open 每次运行时都会在我的浏览器中打开一个新选项卡。如何刷新页面而不是重新打开它?我尝试了 new=0、new=1 和 new=2,但都做同样的事情。使用 controller() 并没有更好的效果。

我想我可以将 < META HTTP-EQUIV="refresh" CONTENT="60" > 之类的内容添加到 html 页面的 < head > 部分,以每分钟触发一次刷新,无论内容是否更改,但更愿意找到更好的方法。

确切的时间间隔并不重要。

Python 2.7.2,铬 26.0.1410.64 m,Windows 7 64。

4

7 回答 7

7

如果您需要在同一选项卡上进行刷新,则需要 selenium webdriver。使用安装 selenium 后pip,您可以使用以下代码:

from selenium import webdriver
import time
import urllib
import urllib2
    
x = raw_input("Enter the URL")
refreshrate = raw_input("Enter the number of seconds")
refreshrate = int(refreshrate)
driver = webdriver.Firefox()
driver.get("http://"+x)

while True:
    time.sleep(refreshrate)
    driver.refresh()

refreshrate这将打开 URL 并每秒钟刷新一次选项卡

于 2014-09-24T12:28:05.510 回答
2

我使用 pyautogui 模块来刷新浏览器页面。这是一个班轮:

import pyautogui

pyautogui.hotkey('f5') #Simulates F5 key press = page refresh
于 2019-07-07T16:57:51.357 回答
1

保持非常简短,就像这样简单:

from selenium import webdriver
import time

driver = webdriver.Firefox()

driver.get('URL')
while True:
    time.sleep(20)
    driver.refresh()
driver.quit()
于 2018-06-01T20:16:09.490 回答
0

过去似乎有几个人问过这个问题,但这里有一个总结它的链接。

Python刷新HTML文档

但是 webbrowser.open( url, new=0 ) 应该在当前窗口中打开页面,而不是初始化一个新页面。

于 2013-05-06T13:06:30.797 回答
0

Chrome 的 LivePage 扩展。您可以写入文件,然后 LivePage 将为您监控它。您还可以选择刷新 CSS 等导入的内容。Chrome 将要求您授予本地文件:// url 的权限。

(我与该项目无关。)

于 2018-09-20T22:08:04.610 回答
0

或者,您可以在 chrome 中使用简单的自动刷新扩展:D

它允许您设置自己的刷新时间,最快为一秒!

在此处输入图像描述

于 2021-01-24T02:33:27.020 回答
0

由于某种原因,我遇到了与您相同的问题 new=1 , new=0 不起作用。你可以试试下面的代码。它只是打开 url,等待 10 秒然后终止进程 n 重复。

    from subprocess import Popen
    import time

    while True:
       link = ('https://www.google.com/')
       Popen(['start', 'chrome', link], shell=True)
       time.sleep(10)
       Popen('taskkill /F /IM chrome.exe', shell=True)
于 2022-02-25T23:12:52.763 回答