2016-01-13 262 views
0

我想从这个Webpage.中提取足球装置现在我已经有了从该网页的表中提取装置的代码。使用Jsoup提取特定的表数据

private class LoadFixtures extends AsyncTask<Void,Void,Void> { 
    String stringDT="",stringHome="",stringAway=""; 
    String url = "http://www.bbc.com/sport/football/spanish-la-liga/fixtures"; 
    String stringTime=""; 
    @Override 
    protected Void doInBackground(Void... params) { 
     Document doc = null; 
     try { 
      doc = Jsoup.connect(url).timeout(0).get(); 

      Elements matchDetails = doc.select("td.match-details"); 
      Elements ele_hTeam = matchDetails.select("span.team-home.teams"); 
      Elements ele_aTeam = doc.select("span.team-away.teams"); 
      Elements ele_time = doc.select("td.kickoff"); 

      int tsize = ele_hTeam.size(); 
      for(int i=0;i<tsize;i++) { 
       stringTime+="\n\n"+ele_time.get(i).text(); 
       stringHome+="\n\n"+ele_hTeam.get(i).text(); 
       stringAway+="\n\n"+ele_aTeam.get(i).text(); 
      } 

     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
     return null; 
    } 

    @Override 
    protected void onPostExecute(Void aVoid) { 
     homeTeam.setText(stringHome); 
     awayTeam.setText(stringAway); 
     timeView.setText(stringTime); 

     super.onPostExecute(aVoid); 

    } 
} 

这段代码给了我灯具的整个列表,但我想要做的只是提取特定日期的灯具。例如,可以说我想仅从提取装置2016年1月16日星期六

回答

0

下面的代码将按照您的要求进行操作。我只是提供了一个字符串变量和你正在查找的日期。下面的代码在页面上的每个表上循环。每个表格将包含x个夹具。如果表格标题包含您提供的日期,它将进入该表格并允许您选择主队和客队。希望这可以帮助!

String dateLookup= "16th January 2016"; 
String url = "http://www.bbc.com/sport/football/spanish-la-liga/fixtures"; 

try { 
    Document document = Jsoup.connect(url).timeout(0).get(); 
    Elements tableElements = document.select("table.table-stats"); 
    for (Element e : tableElements) { 
     if (e.select("caption").text().contains(dateLookup)) { 
      Elements matchElements = e.select("tr.preview"); 
      for (Element match : matchElements) { 
       System.out.println("Home Team: " + match.select("span.team-home").text()); 
       System.out.println("Away Team: " + match.select("span.team-away").text() + "\n"); 
      } 
     } 
    } 
} catch (IOException e) { 
    e.printStackTrace(); 
}