1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
|
package files;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import java.io.IOException;
import java.net.URL;
import java.util.ArrayList;
public class Parser {
public static Document getPage(String url) throws IOException {
return Jsoup.parse(new URL(url), 3000);
}
public static Anime[] getAnimeAtMainMenu(String page) throws IOException {
Element animeList = Parser.getPage(page).select("div[class=animes-container-list]").first();
assert animeList != null;
Elements namesTemp = animeList.select("div[class=h5 font-weight-normal mb-1]").select("a");
Elements descriptionsTemp = animeList.select("div[class=description d-none d-sm-block]");
Elements yearsTemp = animeList.select("span[class=anime-year mb-2]").select("a[class=text-link-gray text-underline]");
Elements genresTemp = animeList.select("span[class=anime-genre d-none d-sm-inline]").select("a[class=mb-2 text-link-gray text-underline]");
Elements imagesTemp = animeList.select("div[class=anime-list-lazy lazy]");
byte countOfAnime = (byte) namesTemp.size();
ArrayList<String> names = new ArrayList<String>();
for (Element name : namesTemp) {
String text = name.toString();
int start = text.indexOf(">") + 1;
int end = text.indexOf("</a>");
char[] dst = new char[end - start];
text.getChars(start, end, dst, 0);
names.add(String.valueOf(dst));
}
ArrayList<String> descriptions = new ArrayList<String>();
for (Element description : descriptionsTemp) {
String text = description.toString();
if (text.length() <= 49) {
descriptions.add("");
continue;
}
int start = text.indexOf("\n") + 3;
int end = text.indexOf("\n</div>");
char[] dst = new char[end - start];
text.getChars(start, end, dst, 0);
descriptions.add(String.valueOf(dst));
}
ArrayList<String> years = new ArrayList<String>();
for (Element year : yearsTemp) {
String text = year.toString();
int start = text.indexOf(">") + 1;
int end = text.indexOf("</a>");
char[] dst = new char[end - start];
text.getChars(start, end, dst, 0);
years.add(String.valueOf(dst));
}
ArrayList<String> images = new ArrayList<String>();
for (Element image : imagesTemp) {
String text = image.toString();
int start = text.indexOf("data-original=") + 15;
int end = text.indexOf(">") - 1;
char[] dst = new char[end - start];
text.getChars(start, end, dst, 0);
images.add(String.valueOf(dst));
}
Anime[] animes = new Anime[countOfAnime];
for (int i = 0; i < countOfAnime; i++) {
animes[i] = new Anime(names.get(i), descriptions.get(i), null, years.get(i), images.get(i));
}
return animes;
}
// public static String[] getAnimeNames() throws IOException {
//
// }
}
|