我从https://www.brainyquote.com/authors/oscar_wilde中获得所有引号,并将每个元素的文本添加到String类型的List中,一切正常。我的问题是它没有抓住网站上的每个元素。每次只能抓25次。我通过加载引号并打印出列表的大小进行了测试,结果为25。是否有一种方法可以使用jsoup加载每个元素,以便获取所有引号?
这是相关的课程。正如我所说,一切正常。唯一的问题是获取所有引号,而不是仅获取25。注意:忽略我从21开始索引的事实,当我从0开始索引时也会发生同样的情况。
package com.galanjulio.pequitas.quotes;
import com.galanjulio.pequitas.Pequitas;
import lombok.Getter;
import lombok.Setter;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
public class QuoteHandler {
private Document document;
private List<String> quotes;
@Getter
@Setter
private int index;
public QuoteHandler() {
try {
document = Jsoup.connect("https://www.brainyquote.com/authors/oscar_wilde").get();
} catch (IOException e) {
e.printStackTrace();
}
index = 21;
quotes = new ArrayList<>();
loadQuotes();
}
public String getNextQuote() {
index++;
if (index >= quotes.size()) {
index = 0;
}
Pequitas.getInstance().saveSettings();
return quotes.get(index);
}
private void loadQuotes() {
List<Element> elements = document.getElementsByClass("b-qt");
for (Element element : elements) {
quotes.add(element.text());
}
}
}