我想从http://www.futbol24.com/Live/?__igp=1&LiveDate=20141104使用jSoup。我知道如何使用jSoup,但我发现很难准确定位我需要的数据。
我想从tbody表的每一行中选择时间、主队和客场。所以第一行的输出应该是:
08:30 Persipura Jayapura Pelita Bandung Raya
我可以将这些元素中的每一个元素的td类看作"status alt"、"home"one_answers"guest"。
目前我已经尝试了以下内容,但似乎没有输出任何内容。。。我做错了什么?
matches = new ArrayList<Match>();
//getHistory
String website = "http://www.futbol24.com/Live/?__igp=1&LiveDate=20141104";
Document doc = Jsoup.connect(website).get();
Element tblHeader = doc.select("tbody").first();
List<Match> data = new ArrayList<>();
for (Element element1 : tblHeader.children()){
Match match = new Match();
match.setTimeOfMatch(element1.select("td.status.alt").text());
match.setAwayTeam(element1.select("td.home").text());
match.setHomeTeam(element1.select("td.guest").text());
data.add(match);
System.out.println(data.toString());
有人知道我如何使用jSoup从表的每一行获取这些元素吗?
谢谢,
Rob
这个网站的内容似乎是通过AJAX生成的。Jsoup无法处理这个问题,因为它不是一个解释JavaScript的浏览器。为了解决这个抓取问题,您可能需要类似Selenium的网络驱动程序。我之前对一个关于这个问题的一般化问题给出了更长的答案,所以请看这里:
Jsoup获取动态生成的HTML