2016-03-01 36 views
2

這可能是具有挑戰性的,因爲該網站的建設者似乎試圖阻止這一點。如何使用動態值從表中刪除數據?

我想構建一個簡單的應用程序來查看網站表中的一些數據。該表位於:

http://www.cepteteb.com.tr/doviz-kurlari

然而,表中的數據似乎頁面加載後加載,所以當我試圖讓表的HTML,它來自空。我如何獲得包含數據的表格?

我正在使用JSOUP來刪除表。

private class GetData extends AsyncTask<String, Void, Element> { 

     @Override 
     protected Element doInBackground(String... params) { 
      try { 
       Document document = Jsoup.connect(params[0]).get(); 
       Log.e("Yiit",document+""); 
       Element table = document.getElementById("dovizTablo"); 
       return table; 
      } catch (Exception e) { 
       e.printStackTrace(); 
      } 

      return null; 
     } 

     @Override 
     protected void onPostExecute(Element element) { 
      super.onPostExecute(element); 
      Log.e("Yiit",element+""); 
      tvMain.setText(element+""); 
     } 
    } 

結果:

<table class="prices prices2" id="dovizTablo"> 
<thead> 
<tr> 
<th>D&ouml;viz Adı</th> 
<th>CEPTETEB Alış</th> 
<th>CEPTETEB Satış</th> 
</tr> 
</thead> 
<tbody> 
</tbody> 
</table> 

預期的行爲:

<table class="prices prices2" id="dovizTablo"> 
          <thead> 
           <tr> 
            <th>Döviz Adı</th> 
            <th>CEPTETEB Alış</th> 
            <th>CEPTETEB Satış</th> 
           </tr> 
          </thead> 
          <tbody> 
          <tr><td>USD</td><td>2.9096 TL</td><td>2.9908 TL</td></tr><tr><td>EUR</td><td>3.1555 TL</td><td>3.2435 TL</td></tr><tr><td>GBP</td><td>4.0558 TL</td><td>4.1688 TL</td></tr></tbody> 
         </table> 
+0

嘗試使用Xpath - http://stackoverflow.com/questions/7085539/does-jsoup-support-xpath - 例如(/ * * [@ id =「dovizTablo」]/tbody/tr [1]/td [1]) - 如何獲取Xpath - https://www.youtube.com/watch?v=vCNLPHP3E_U – Tasos

+0

因此,如果我理解正確,xpath用於輕鬆訪問所需的元素。但是,我在導航到表格時沒有問題,它只是空的。所以xpath可能不會有幫助。 – yigitserin

+0

你可能是對的,因爲它聽起來像是一個時間問題。 Xpath獲取元素內部的內容。你有沒有嘗試過在拖動之前放置2-3秒? – Tasos

回答

0

您提供本網站使用JavaScript初始化數據。你不能用Jsoup刮。

我能想到的2種方法來湊這個頁面

  1. 使用WebView訪問該頁面,並運行一些js到 解析你想要什麼,並返回到主應用程序。 閱讀this如何實現它。

  2. 創建一個可以解析並返回來自該站點的數據的Web服務。

+0

你能指點我如何創建上述網絡服務的例子嗎?我在網站開發方面不是很有經驗。 – yigitserin

+0

如果你有一個網頁服務器,那麼你可以創建一個網頁應用程序來刮擦頁面。這可能會幫助你。 http://nrabinowitz.github.io/pjscrape/ – giannisf

+0

不幸的是,我不,但我怎麼測試這個工作呢? – yigitserin

0

網站的建設者似乎試圖阻止這一點。

那麼你爲什麼要刮數據?

相反,我建議你找到另一個公開提供你需要的數據的來源。

您還可以檢查您要定位的網站是否提供API。

相關問題