cześć,
Chciałbym wyodrębnić dane z elementów takich jak span i zapisać jako obiekt klasy do listy, ale kiedy chcę dodać przygotowany obiekt klasy Fighter, mam 10 x takich samych danych na liście.
(Powinno być: 1. Stipe Miocic 2. Daniel Cormier 3. Francis Ngannou itp., Ale ma 10 x 10. Cheick Kongo)
Mam wrażenie, że ta lista.add (f1); jest w niewłaściwym miejscu lub powinienem użyć wątków na metodzie heavyweight (), ale nie jestem pewien nawet za co się zaczepić/gdzie jest błąd..
private List<Fighter> list = new ArrayList<>();
public void heavyweight() throws IOException {
Fighter f1 = new Fighter();
String url = "https://www.sherdog.com/news/rankings/2/Sherdogs-Official-Mixed-Martial-Arts-Rankings-164999";
Document document = Jsoup.connect(url).get();
Elements fighters = document.select("h2 > a[href]");
for (Element fighter : fighters) {
System.out.println(fighter.text());
String fighterUrl = "https://www.sherdog.com" + fighter.attr("href");
Document doc = Jsoup.connect(fighterUrl).get();
Element fighterData = doc.select("span[class=item height]").first();
f1.setWeight(fighterData.text().toString());
fighterData = doc.select("span[class=fn]").first();
f1.setName(fighterData.text().toString());
fighterData = doc.select("span[class=item birthday]").first();
f1.setAge(fighterData.text().toString());
list.add(f1);
// fighterData = doc.select("div.data").first();
// System.out.println(fighterData.text());
System.out.println("---------------");
}
}
public void print() {
System.out.println("LIST: ");
System.out.println();
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
}
Ekran wynikowy:
Stipe Miocic
---------------
Daniel Cormier
---------------
Francis Ngannou
---------------
Junior dos Santos
---------------
Curtis Blaydes
---------------
Derrick Lewis
---------------
Alexander Volkov
---------------
Alistair Overeem
---------------
Ryan Bader
---------------
Cheick Kongo
---------------
LIST:
Fighter [name=Cheick Kongo, age=Born: 1975-05-17 AGE: 44, weight=Height 6'4" 193.04 cm]
Fighter [name=Cheick Kongo, age=Born: 1975-05-17 AGE: 44, weight=Height 6'4" 193.04 cm]
Fighter [name=Cheick Kongo, age=Born: 1975-05-17 AGE: 44, weight=Height 6'4" 193.04 cm]
...
itp...