[英]Trying to scrape Dynamic data from web using Jsoup to android app,but not getting exact data
下面是我的代碼。 請轉到我正在解析的網頁。 我想提取“德里負載”和“頻率”。 使用substring
我可以正確地獲得“德里負載”,但是在頻率的情況下我會失敗,因為字符串的位置有時會發生變化。 因此,我得到以下結果:
50.05
或50.0<
因為有時十進制值會產生問題。
class parsepage extends AsyncTask<String,Void,String> {
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
TextView textView=(TextView) findViewById(R.id.txtload);
Log.d("test",parseddata);
textView.setText(parseddata);
}
@Override
protected String doInBackground(String... params) {
org.jsoup.nodes.Document doc;
try {
doc= Jsoup.connect("http://www.delhisldc.org/DynamicData.aspx").get();
Element element=doc.getElementById("LblLoad");
Element element1=doc.getElementById("LblFrequency");
Element element2=doc.getElementById("LblMaxToday");
delhiload=element.toString().substring(95,99);
delhifreq=element1.toString().substring(100,105);
delhimaxload=element2.toString().substring(99,104);
parseddata="Delhi Load:"+delhiload+System.getProperty ("line.separator")+"Frequency:"+delhifreq+System.getProperty ("line.separator")+"Max Load:"+delhimaxload;
}
catch (IOException e){
e.printStackTrace();
}
// this.publishProgress(parseddata);
return parseddata;
}
}
text()
方法提供了獲取 html 元素的文本節點的功能(請參閱:https ://jsoup.org/cookbook/extracting-data/attributes-text-html )。 您的選擇器已經正確,只需使用text()
而不是您的子字符串嘗試。
調整后的代碼
try {
doc= Jsoup.connect("http://www.delhisldc.org/DynamicData.aspx").get();
Element element=doc.getElementById("LblLoad");
Element element1=doc.getElementById("LblFrequency");
Element element2=doc.getElementById("LblMaxToday");
delhiload = element.text();
delhifreq = element1.text();
delhimaxload = element2.text();
parseddata="Delhi Load:"+delhiload+System.getProperty ("line.separator")+"Frequency:"+delhifreq+System.getProperty ("line.separator")+"Max Load:"+delhimaxload;
} catch (IOException e) {
e.printStackTrace();
}
parseddata
輸出
Delhi Load:5271
Frequency:50.1
Max Load:5442 at 22:50:40
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.