Pythonを使用して情報を収集し、非常に単純なhtmlページを作成し、ローカルに保存して、webbrowser.open( 'file:/// c:/を使用してブラウザーにページを表示します。 testfile.html ')。毎分新しい情報をチェックします。情報が変更された場合は、ローカルのhtmlファイルを書き換えて、表示されたページをリロードしたいと思います。
問題は、webbrowser.openを実行するたびに、ブラウザで新しいタブが開くことです。ページを再度開くのではなく、更新するにはどうすればよいですか? new = 0、new = 1、new = 2を試しましたが、すべて同じことをします。 controller()の使用はこれ以上うまくいきません。
<META HTTP-EQUIV = "refresh" CONTENT = "60">のようなものをhtmlページの<head>セクションに追加して、コンテンツが変更されたかどうかに関係なく、毎分更新をトリガーできると思いますが、もっと良い方法。
正確な時間間隔は重要ではありません。
Python 2.7.2、chrome 26.0.1410.64 m、Windows 764。
同じタブで更新が必要な場合は、SeleniumWebドライバーが必要です。 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
秒ごとにタブが更新されます
過去に何人かがこれを尋ねたようですが、ここにそれを要約したリンクがあります。
ただし、webbrowser.open(url、new = 0)は、新しいウィンドウを初期化するのではなく、現在のウィンドウでページを開く必要があります。
Chrome用のLivePage拡張機能。ファイルに書き込むことができ、LivePageがそれを監視します。オプションで、CSSなどのインポートされたコンテンツを更新することもできます。 Chromeでは、ローカルfile:// urlsに対する権限を付与する必要があります。
(私はこのプロジェクトとは無関係です。)
次のように単純に、非常に短くしてください。
from Selenium import webdriver
import time
driver = webdriver.Firefox()
driver.get('URL')
while True:
time.sleep(20)
driver.refresh()
driver.quit()