Refresh a local web page using Python

僤鯓⒐⒋嵵緔 提交于 2019-11-30 03:01:31

问题


I'm using Python to gather some information, construct a very simple html page, save it locally and display the page in my browser using webbrowser.open('file:///c:/testfile.html'). I check for new information every minute. If the information changes, I rewrite the local html file and would like to reload the displayed page.

The problem is that webbrowser.open opens a new tab in my browser every time I run it. How do I refresh the page rather than reopen it? I tried new=0, new=1 and new=2, but all do the same thing. Using controller() doesn't work any better.

I suppose I could add something like < META HTTP-EQUIV="refresh" CONTENT="60" > to the < head > section of the html page to trigger a refresh every minute whether or not the content changed, but would prefer finding a better way.

Exact time interval is not important.

Python 2.7.2, chrome 26.0.1410.64 m, Windows 7 64.


回答1:


If you're going to need a refresh on the same tab, you'll need selenium webdriver. After installing selenium using pip, you can use the following code

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

This will open the url and refresh the tab every refreshrate seconds




回答2:


It looks like several people have asked this in the past but here is a link that sums it up.

Python refresh HTML document

But webbrowser.open( url, new=0 ) should open the page in the current window and not initialize a new one.




回答3:


Keep it very short, as simple as:

from selenium import webdriver
import time

driver = webdriver.Firefox()

driver.get('URL')
while True:
    time.sleep(20)
    driver.refresh()
driver.quit()



回答4:


The LivePage extension for Chrome. You can write to a file, then LivePage will monitor it for you. You can also optionally refresh on imported content like CSS. Chrome will require that you grant permissions on local file:// urls.

(I'm unaffiliated with the project.)




回答5:


I use pyautogui module to refresh the browser page. It's one liner:

import pyautogui

pyautogui.hotkey('f5') #Simulates F5 key press = page refresh


来源:https://stackoverflow.com/questions/16399355/refresh-a-local-web-page-using-python

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!