2013-05-06 41 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