Java Jsoupcrawling如何从同一标记(但有两个项)进行爬网

Java Jsoupcrawling如何从同一标记(但有两个项)进行爬网,java,jsoup,Java,Jsoup,我需要抓取span标记中的所有三项。我有一些代码,但我需要一些提示。这是我到现在为止的代码 News n = new News(); n.setHeadline(news.getElementsByTag("h2").first().text()); n.setTypeOfSport(news.getElementsByTag("span").first().text()); n.setDate(news.getElementsByTag("span").); n.setTime(news.

我需要抓取span标记中的所有三项。我有一些代码,但我需要一些提示。这是我到现在为止的代码

News n = new News();
n.setHeadline(news.getElementsByTag("h2").first().text());
n.setTypeOfSport(news.getElementsByTag("span").first().text());

n.setDate(news.getElementsByTag("span").);

n.setTime(news.getElementsByTag("span").);

看起来您想从
中选取所有
span
元素,并根据它们的位置(索引)访问它们

假设您的
news
变量的类型为
Document
Element
(s),您应该可以访问
select(CSSquery)
方法。如果它在某种程度上也包含此
,则您的代码可能如下所示:

Elements spans = news.select("div.info span");

//now you can get and handle text from all spans via
spans.get(0).text();
spans.get(1).text();
spans.get(2).text();

有关使用CSS选择元素的更多信息,请参见

,您似乎希望从
中选择所有
span
元素,并根据它们的位置(索引)访问它们

假设您的
news
变量的类型为
Document
Element
(s),您应该可以访问
select(CSSquery)
方法。如果它在某种程度上也包含此
,则您的代码可能如下所示:

Elements spans = news.select("div.info span");

//now you can get and handle text from all spans via
spans.get(0).text();
spans.get(1).text();
spans.get(2).text();

有关使用CSS选择元素的更多信息,请参见

元素
是可编辑的,因此您可以使用循环:
For(Element span:span){…}
@KrystianG True,但如果重复相同的步骤,循环是有意义的。根据我对问题的理解,情况并非如此,因为每个跨度中的文本都应该用作不同方法的参数(
n.setTypeOfSport(..)
n.setDate(..)
n.setTime(..)
),你是对的。这只是对这个问题的作者的一般性提示。考虑到他不知道自己可以使用get(int),这可能迟早会有用。
元素
是可编辑的,因此您可以使用loop:
for(Element span:span){…}
@KrystianG True,但如果我们重复相同的步骤,那么循环是有意义的。根据我对问题的理解,情况并非如此,因为每个跨度中的文本都应该用作不同方法的参数(
n.setTypeOfSport(..)
n.setDate(..)
n.setTime(..)
),你是对的。这只是对这个问题的作者的一般性提示。考虑到他不知道自己可以使用get(int),可能迟早会有用。