web-dev-qa-db-ja.com

Python)を使用してローカルWebページを更新します

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。

9
foosion

同じタブで更新が必要な場合は、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秒ごとにタブが更新されます

4
Prasanth Louis

過去に何人かがこれを尋ねたようですが、ここにそれを要約したリンクがあります。

Python更新HTMLドキュメント

ただし、webbrowser.open(url、new = 0)は、新しいウィンドウを初期化するのではなく、現在のウィンドウでページを開く必要があります。

0
Dan K

Chrome用のLivePage拡張機能。ファイルに書き込むことができ、LivePageがそれを監視します。オプションで、CSSなどのインポートされたコンテンツを更新することもできます。 Chromeでは、ローカルfile:// urlsに対する権限を付与する必要があります。

(私はこのプロジェクトとは無関係です。)

0
Reece

次のように単純に、非常に短くしてください。

from Selenium import webdriver
import time

driver = webdriver.Firefox()

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