2015-05-28 26 views
2

我想從網站提取生活參數。現在的問題是,當網頁加載時,所有參數最初都是='XXXX'。通過結果,當我使用下面的代碼,輸出的是「XXXX」 ......Jsoup連接到URL,200毫秒後提取HTML

Document doc = Jsoup.connect(url).ignoreContentType(true).get(); 

Elements elem = doc.select("text[id=id_17]"); 
String par = elem.text(); 
Log.i("INFO", "parameter = " + par); 

只有幾毫秒之後,在「XXXX」是由ECMAScript的替換實際值(例如6.27)。

在我從網站提取數據之前,是否可以「等待」幾毫秒?由OP發現

+0

Jsoup不支持JavaScript(或ECMAScript中),這樣將無法正常工作。您需要使用其他方式,或許使用HtmlUnit或Selenium webdriver。如果你發佈你正在使用的網址,我可能會提出一個更好的方法。 – JonasCz

+0

謝謝,我會看看。我無法發佈網址,因爲它是本地網頁,只有在我工作的工廠中連接到wifi站點的設備可訪問。 – Bram

+0

在這種情況下,您可以查看瀏覽器開發控制檯的網絡選項卡中發生的情況,該腳本可能只是在幾秒鐘後將一些JSON加載到頁面中。在這種情況下,您可以找出JSON的加載位置,然後將其加載到您自己的應用程序中。 – JonasCz

回答

0

解決方案:

我能提取所需的數據。我不知道這是否是有效的,但它的工作原理:我在頁面加載了一個網頁視圖,並要求我在網頁源代碼中發現的功能如下:

webView.loadUrl("javascript:function(e){ ... }"). 

在這個函數中,我添加了一個java方法,它通過JavaScript接口將值寫入TextView。無論如何,感謝您的建議,他們把我帶到了這個解決方案;)