/ 我一直在阅读和学习JSoup和网页抓取(我用eclipse IDE JAVA语言编写代码),这是我第一次想出一些我感兴趣的东西。 我本质上是在创建一个程序,就像一个基于文本的仪表板,特定于我认为与我的兴趣相关的, 包含我想要的信息,这个开始是现场的 板球比分(Go Gossies) /
/ 我很乐意接受我的问题的任何帮助,因为现在我从相关页面得到了结果,但是我希望添加Match Headings即Twenty 20标题然后所有相关游戏返回,然后也许测试分数的标题等...这些标题是可用的,我通过temp4变量访问它们,但是当我将代码添加到循环并打印结果基本上它没有排列正确,因为不同的长度match-section-head vs say innings-info-1。所以我会得到所有的标题,但会在它们下面有错误的游戏,并且它不会给我页面上的所有结果。 /
我的问题是:我如何才能正确使用存储不同比赛标题的match-section-head元素,即(Twenty20 Competition,Test Matches,Women's ODI)。最初我是将它添加到循环中,但由于匹配标题少得多,所以实际匹配会使我的所有结果无序。
//我已经包含了所有代码,你可以在我的评论中看到我试图用temp4变量做什么
提前感谢所有帮助,快乐编程。
import java.io.IOException;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
public class CricketWebScrape
{
public static void main(String[] args)
{
//Beginning of initial code connection to Website, add browser userAgent
try
{
Document document = Jsoup.connect("http://www.espncricinfo.com/ci/engine/match/index.html?view=live").userAgent("Safari/11.0").get();
//Elements object variables initialized and connecting to Websites valid Elements via div.
Elements temp = document.select("div.innings-info-1");
Elements temp2 = document.select("div.innings-info-2");
Elements temp3 = document.select("div.match-status");
Elements temp4 = document.select("div.match-section-head");
//Beginning of Loop that goes through all Elements listed above
for (int i = 0; i < temp.size() && i < temp2.size() && i < temp3.size(); i ++)//&& temp4.size(): i ++
{
//Print statements to show valid data
//System.out.println("**** " + temp4.get(i).text() + " ****");
System.out.println(" ");
System.out.println(temp.get(i).text()
+ " vs " + temp2.get(i).text());
System.out.println(temp3.get(i).text());
System.out.println(" ");
}
}
catch (IOException e)
{
e.printStackTrace();
}
}
}