这可能具有挑战性,因为网站的建设者似乎试图阻止这种情况。
我正在尝试构建一个简单的应用程序来查看网站表中的一些数据。该表位于:
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ö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 :(得分:0)
您提供的此网站使用javascript初始化数据。你不能用Jsoup刮掉它。
我可以想出两种方法来抓取这个页面
使用WebView
访问该网页,然后运行一些js
解析你想要的东西并返回主应用程序。
阅读this如何实现它。
创建一个可以解析并返回此站点数据的Web服务。
答案 1 :(得分:0)
网站的建设者似乎试图阻止这一点。
那你为什么要抓数据?
相反,我建议您找到另一个公开提供所需数据的来源。
您还可以检查您所定位的网站是否提供API。