Я новичок в jsoup и пытаюсь получить значение атрибута атрибута title data-original-title, но получаю пустую строку. Я хочу ценность

30 июля 2015 г. 15:26:13

<table class="table table-hover">
<thead>
<tr style="border-color: #E1E1E1; border-width: 1px; background-color: #F9F9F9; border-top-style: solid;">
<th>Height</th>
<th>Age</th>
<th>txn</th>
<th>Uncles</th>
<th>Miner</th>
<th>GasUsed</th>
<th>GasLimit</th>
<th>Avg.GasPrice</th>
<th>Reward</th>
</tr>
</thead>
<tbody>
<tr><td></td>
<td>
**<span rel="tooltip" data-placement="bottom" title="" data-original-title="Jul-30-2015 03:26:13 PM">1149 days 18 hrs ago</span>**
</td>

Мой код

for (int i = total_pages; i >= 1; i--) {
            System.out.println("\nDisplaying blocks on page " + i);
            String newString = "https://etherscan.io/blocks?p=" + i;
            Document d3 = Jsoup.connect(newString).get();
            Elements e = d3.select("table.table-hover > tbody");
            Elements r = e.get(0).select("tr");

           for (Element cr : r) {
            Elements test = d3.select("span");
            System.out.println(test.attr("data-original-title"));

            }
        }

Любая помощь будет оценена. Я изменил значение атрибута, чтобы получить значение размещения данных, и оно извлекается правильно. Но исходный заголовок данных по-прежнему возвращает пустую строку.

0
mzaidi 22 Сен 2018 в 13:02

2 ответа

Лучший ответ

Атрибуты данных - это особый вид атрибутов, поэтому доступ к ним немного отличается, но все же очень прост. Вместо того

System.out.println(test.attr("data-original-title"));

Использовать:

System.out.println(test.first().dataset().get("original-title"));
1
Krystian G 23 Сен 2018 в 23:04

Вы можете попробовать проверить, работает ли это:

d3.select("span[data-original-title]").get(0).attr("data-original-title")

Пояснение:

Это ищет первый диапазон, содержащий атрибут data-original-title, и получает значение этого атрибута.

1
Gautam 22 Сен 2018 в 10:16