Я пытаюсь очистить следующую страницу: https://icobench.com/icos, и я застрял, пытаясь извлечь биты информации из элементов с помощью класса ico_data. Код выглядит так:
<td class = "ico_data">
<div class = "image_box"><a href = "/ico/gcox" class = "image" style = "background-image:url('/images/icos/icons/gcox.jpg');"></a></div>
<div class = "content">
<a class = "name" href = "/ico/gcox"><object><a href = "/premium" title = "Premium" class = "premium"> </a></object>GCOX</a>
<p>GCOX is the world's first blockchain-powered platform that allows the popularity of celebrities to be tokenised and listed.<br><br><b>Restrictions KYC:</b> Yes <span class = "line">|</span> <b>Whitelist:</b> Yes <span class = "line">|</span> <b>Countries:</b> USA, Singapore</p>
</div>
<div class = "shw">
<div class = "row"><b>Start:</b> 08 Aug 2018</div>
<div class = "row"><b>End:</b> 31 Aug 2018</div>
<div class = "row"><b>Rate:</b>
<div class = "rate color4">3.9</div>
</div>
</div>
</td>
Я хочу извлечь имя, описание, дату начала, дату окончания. Как мне это сделать?
Это мой код на данный момент:
Document document = Jsoup.connect("https://icobench.com/icos").userAgent("Mozilla").get();
Elements companyElements = document.getElementsByClass("ico_data");
for (Element companyElement : companyElements) {
// do stuff here
}
Спасибо,
Вы можете отфильтровать начало и конец, отфильтровав теги с помощью. Имя по классу «name» и описание по тегу P внутри содержимого div.
public void extract(){
try {
Connection connection = Jsoup.connect("https://icobench.com/icos");
Document document = connection.get();
Elements companyElements = document.select(".ico_data");
for (Element companyElement : companyElements) {
if (companyElement.select(".content")!=null&&companyElement.select(".content").size()>0){
Element content = companyElement.select(".content").first();
String name = companyElement.select(".content").select(".name").text();
String description = companyElement.select(".content").select("p").text();
String start = companyElement.select("b:contains(Start)").first()
.parent().text().replace(companyElement.select("b:contains(Start)").first().text(),"");
String end = companyElement.select("b:contains(End)").first()
.parent().text().replace(companyElement.select("b:contains(End)").first().text(),"");
}
System.out.println(companyElement);
// do stuff here
}
} catch (IOException e) {
e.printStackTrace();
}