2013-01-02 131 views
0

我想創建一個java程序,檢測網頁上的HTML元素的變化。例如:http://timer.onlineclock.net/Java的HTML元素閱讀

隨着時間的推移,時鐘的HTML元素會更改它們顯示的圖像的來源。無論如何,使用java,我可以高效地打開一個連接到這個頁面,並能夠看到這些元素何時改變?

我已經使用了HTMLUnit,但是我決定花費很長時間才能加載一個頁面以被認爲足夠高效。

我知道如何使用URL的唯一方法是使用BufferedReader讀取頁面,然後使用正則表達式解析源代碼中的HTML元素,但這需要我「重新加載」每次我想查看一個元素的屬性時,任何人都可以給我一個建議,告訴我如何在幾毫秒內檢測到這些變化,而不需要使用太多的網絡資源?

+0

如果你想解析HTML,最好使用現有的HTML解析器,而不是自己編寫。您無法使用正則表達式解析HTML(請參閱http://www.codinghorror.com/blog/2009/11/parsing-html-the-cthulhu-way.html)。也許更好的問題是你想要做什麼?你可以通過將HTML視爲文本字符串並區分2個字符串來完成同樣的任務嗎? –

回答

0

最好的選擇是學習和使用JavaScript而不是服務器端的java。 JavaScript程序運行在客戶端(即:Web瀏覽器),而不是服務器端。典型的HTML文檔由元素(例如:文本,段落,列表項等)組成。使用JavaScript,您可以創建計時器,相應地操作用戶的事件並操縱這些元素。

http://www.w3schools.com/js/default.asp可能是一個很好的介紹JavaScript的,我建議你花一些時間在上面

0

問題的網頁似乎是...的Javascript數字時鐘。

如果您需要當前時間,請嘗試new Date();

如果您希望以恆定速率調用代碼,請嘗試使用Timer類。您可以設置一個任務,每秒調用一次,這與您通過輪詢頁面獲得的頻率相同。

如果您想將該頁面用作外部時間源,請嘗試使用網絡時間協議。它將提供更低的延遲,實際上是爲此目的而設計的。