【问题标题】:Refresh a local web page using Python使用 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 打开一次,然后让它每分钟刷新一次(读取旧文件还是新生成的文件)?

标签: python html refresh


【解决方案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,这似乎有点矫枉过正。元刷新似乎是最好的选择?
        • 这里都不行。它每次都会打开一个新标签。
        猜你喜欢
        • 2016-09-20
        • 2013-07-25
        • 2013-06-19
        • 2020-12-08
        • 1970-01-01
        • 2013-04-01
        • 1970-01-01
        • 2015-09-08
        • 2016-06-22
        相关资源
        最近更新 更多