Java Jsoupcrawling如何从同一标记(但有两个项)进行爬网
我需要抓取span标记中的所有三项。我有一些代码,但我需要一些提示。这是我到现在为止的代码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.
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),可能迟早会有用。