import org.jsoup.nodes.Element; //导入方法依赖的package包/类
private Repository parseTrendingRepositoryData(Element element) throws Exception{
String fullName = element.select("div > h3 > a").attr("href");
fullName = fullName.substring(1);
String owner = fullName.substring(0, fullName.lastIndexOf("/"));
String repoName = fullName.substring(fullName.lastIndexOf("/") + 1);
Element descElement = element.select("div > p").first();
StringBuilder desc = new StringBuilder("");
for(TextNode textNode : descElement.textNodes()){
desc.append(textNode.getWholeText());
}
Element numElement = element.getElementsByClass("f6 text-gray mt-2").first();
String language = "";
Elements languageElements = numElement.select("span > span");
if(languageElements.size() > 0){
language = numElement.select("span > span").get(1).textNodes().get(0).toString().trim();
}
String starNumStr = numElement.select("a").get(0).textNodes().get(1).toString()
.replaceAll(" ", "").replaceAll(",", "");
String forkNumStr = numElement.select("a").get(1).textNodes().get(1).toString()
.replaceAll(" ", "").replaceAll(",", "");
Element periodElement = numElement.getElementsByClass("d-inline-block float-sm-right").first();
String periodNumStr = "0";
if(periodElement != null){
periodNumStr = periodElement.childNodes().get(2).toString().trim();
periodNumStr = periodNumStr.substring(0, periodNumStr.indexOf(" "))
.replaceAll(",", "");
}
Repository repo = new Repository();
repo.setFullName(fullName);
repo.setName(repoName);
User user = new User();
user.setLogin(owner);
repo.setOwner(user);
repo.setDescription(desc.toString().trim()
.replaceAll("\n", ""));
repo.setStargazersCount(Integer.parseInt(starNumStr));
repo.setForksCount(Integer.parseInt(forkNumStr));
repo.setSinceStargazersCount(Integer.parseInt(periodNumStr));
repo.setLanguage(language);
repo.setSince(since);
return repo;
}