使用 Python 刷新本地网页
Posted
技术标签:
【中文标题】使用 Python 刷新本地网页【英文标题】:Refresh a local web page using Python 【发布时间】:2013-04-30 05:51:58 【问题描述】:我正在使用 Python 收集一些信息,构建一个非常简单的 html 页面,将其保存在本地并使用 webbrowser.open('file:///c:/testfile.html') 在我的浏览器中显示该页面。我每分钟检查一次新信息。如果信息发生变化,我会重写本地的html文件,并想重新加载显示的页面。
问题是 webbrowser.open 每次运行时都会在我的浏览器中打开一个新选项卡。如何刷新页面而不是重新打开它?我尝试了 new=0、new=1 和 new=2,但都做同样的事情。使用 controller() 并没有更好的效果。
我想我可以在 html 页面的
部分添加类似 的内容,以每分钟触发一次刷新,无论内容是否更改,但会更喜欢找到更好的方法。确切的时间间隔并不重要。
Python 2.7.2,铬 26.0.1410.64 m,Windows 7 64。
【问题讨论】:
可是,你为什么要这样呢?你为什么不做 AJAX 或类似的读取一大块数据然后在你的浏览器中解析呢?使用jQuery很简单,不必总是重新生成网页,只需要创建一个文件然后用JQuery显示它 AJAX 和 jQuery 比在生成的 html 文件中添加 更容易,用 webbbrowser 打开一次,然后让它每分钟刷新一次(读取旧文件还是新生成的文件)? 【参考方案1】:或者,您可以在 chrome 中使用简单的自动刷新扩展:D
它允许您设置自己的刷新时间,最快为一秒!
【讨论】:
【参考方案2】:如果您需要在同一选项卡上进行刷新,则需要 selenium webdriver。
使用pip
安装 selenium 后,可以使用以下代码:
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
秒刷新一次标签
【讨论】:
【参考方案3】:我使用 pyautogui 模块来刷新浏览器页面。这是一个班轮:
import pyautogui
pyautogui.hotkey('f5') #Simulates F5 key press = page refresh
【讨论】:
是刷新单个标签还是浏览器中的所有标签?【参考方案4】:Chrome 的 LivePage 扩展程序。您可以写入文件,然后 LivePage 将为您监控它。您还可以选择刷新 CSS 等导入的内容。 Chrome 将要求您授予本地文件:// url 的权限。
(我与该项目无关。)
【讨论】:
【参考方案5】:保持简短,就像这样简单:
from selenium import webdriver
import time
driver = webdriver.Firefox()
driver.get('URL')
while True:
time.sleep(20)
driver.refresh()
driver.quit()
【讨论】:
如何在 Chrome 中刷新 localhost?【参考方案6】:过去好像有几个人问过这个问题,但这里有一个总结了这个问题的链接。
Python refresh HTML document
但是 webbrowser.open( url, new=0 ) 应该在当前窗口中打开页面,而不是初始化一个新页面。
【讨论】:
new=0 应该可以工作,但是正如我的问题中提到的那样,至少对于该海报或我而言,它不起作用。该链接推荐使用 javascript,这似乎有点矫枉过正。元刷新似乎是最好的选择? 这里都不行。它每次都会打开一个新标签。以上是关于使用 Python 刷新本地网页的主要内容,如果未能解决你的问题,请参考以下文章