2013-05-06 16 views
7

sto usando Python per raccogliere alcune informazioni, costruire una pagina html molto semplice, salvarlo localmente e visualizzare la pagina nel browser usando webbrowser.open ('file: /// C: /testfile.html '). Controllo ogni volta nuove informazioni. Se le informazioni cambiano, riscrivo il file html locale e vorrei ricaricare la pagina visualizzata.aggiornare una pagina web locale utilizzando Python

Il problema è che webbrowser.open si apre una nuova scheda nel browser ogni volta che eseguo. Come faccio ad aggiornare la pagina anziché riaprirla? Ho provato nuovo = 0, nuovo = 1 e nuovo = 2, ma tutti fanno la stessa cosa. L'utilizzo di controller() non funziona meglio.

Suppongo di poter aggiungere qualcosa come < META HTTP-EQUIV = "refresh" CONTENT = "60"> alla sezione < head> della pagina html per attivare un aggiornamento ogni minuto indipendentemente dal fatto che il contenuto sia cambiato, ma preferirebbe trovare un modo migliore.

intervallo di tempo esatto non è importante.

Python 2.7.2, cromo 26.0.1410.64 m, Windows 7 64.

+0

Ma, perché yo fare in questo modo? Perché non fai AJAX o simili per leggere una porzione di dati e analizzare poi nel tuo browser? con jQuery è semplice, e non hanno per rigenerare sempre la pagina web, hanno solo per creare un file e poi mostrare con JQuery – ManuParra

+0

Come è AJAX e jQuery più facile che l'aggiunta di nel file html generato, aprendolo una volta con webbbrowser, quindi lasciandolo aggiornare ogni minuto (leggendo il vecchio file o uno appena generato)? – foosion

risposta

0

Sembra che molte persone hanno chiesto in passato, ma ecco un link che lo riassume.

Python refresh HTML document

Ma webbrowser.open (url, nuovo = 0) dovrebbe aprire la pagina nella finestra corrente e non inizializzare una nuova.

+0

new = 0 dovrebbe funzionare, ma non lo fa, almeno non per quel poster o per me, come menzione nella mia domanda. Quel link raccomanda javascript, che sembra eccessivo. Il meta-refresh sembrerebbe la migliore alternativa? – foosion

2

Se si sta andando ad avere bisogno di un aggiornamento sulla stessa scheda, avrete bisogno di selenio WebDriver. Dopo aver installato il selenio usando pip, è possibile utilizzare il seguente codice

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() 

Si aprirà l'URL e aggiornare la scheda ogni refreshrate secondi

Problemi correlati