2013-05-06 38 views
7

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

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

我想我可以在html页面的< head>部分添加类似于< META HTTP-EQUIV =“refresh”CONTENT =“60”>的内容,以每分钟触发一次刷新,不管内容是否改变,但宁愿找到更好的方法。

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

的Python 2.7.2,铬26.0.1410.64男,Windows 7的64

+0

但是,为什么哟这样做?为什么不用AJAX或类似的工具读取大量数据并在浏览器中进行解析?使用jQuery非常简单,并且不必总是重新生成网页,只需要创建一个文件,然后使用JQuery显示它。 – ManuParra 2013-05-06 13:37:34

+0

AJAX和jQuery比添加更容易到生成的html文件,用webbbrowser打开它,然后让它每分钟刷新一次(读取旧文件或新生成的文件)? – foosion 2013-05-06 17:26:06

回答

0

它看起来像几个人都问过这个在过去,但这里要说的是概括起来的链接。

Python refresh HTML document

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

+0

new = 0应该可以工作,但它不会,至少不是那个海报或我的,就像我的问题中提到的那样。该链接建议JavaScript,这似乎是矫枉过正。元刷新似乎是最好的选择? – foosion 2013-05-06 13:25:24

2

如果您需要在同一个选项卡上进行刷新,则需要使用硒webdriver。 使用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() 

这将打开URL并刷新选项卡每个refreshrate