Получить обновляющийся текст из тега #text ()
Есть сайт, с доходностью того или иного оборудования. Нужно вытащить оттуда текст (раз в 5-10 минут меняющийся) из определенного тега. Но у него нет ни класса, ни ID.
Вот такой путь показывает:
#myUL > li:nth-child(4) > div:nth-child(1) > div:nth-child(1) > div:nth-child(2) > div:nth-child(1) > div:nth-child(2) > div:nth-child(2) > div:nth-child(3) > div:nth-child(1) > center:nth-child(1) > table:nth-child(1) > tbody:nth-child(1) > tr:nth-child(1) > td:nth-child(1)
Пробовал через querySelector, но выдает null
document.querySelector('li:nth-child(4) > div:nth-child(1) > div:nth-child(1) > div:nth-child(2) > div:nth-child(1) > div:nth-child(2) > div:nth-child(2) > div:nth-child(3) > div:nth-child(1) > center:nth-child(1) > table:nth-child(1) > tbody:nth-child(1) > tr:nth-child(1) > td:nth-child(1)').textContent
Вот ссылка (надеюсь можно тут их скидывать)
https://hashrate.no/asics/ez100pro
Нужно получить из предпоследнего столбца значение Revenue на монету Etc.
Буду благодарен за помощь и советы.
Ответы (2 шт):
Автор решения: Швеев Алексей
Использовав функцию Microsoft edge Копировать путь к JS-коду
я легко получил следующий селектор:
// Первое значение
document.querySelector("#myUL > li:nth-child(N) > div > div > div > div > div.w3-col.l9.m12.s12 > div:nth-child(2) > div:nth-child(2) > div > center > table > tbody > tr:nth-child(1) > td");
// Второе значение
document.querySelector("#myUL > li:nth-child(N) > div > div > div > div > div.w3-col.l9.m12.s12 > div:nth-child(2) > div:nth-child(2) > div > center > table > tbody > tr:nth-child(3) > td");
Где N
- номер строки
→ Ссылка
Автор решения: MaxDown
UPDATE:
Получаем список токенов и их Revenue
// Находим все блоки с классом 'block deviceLink'
const blocks = document.querySelectorAll('.block.deviceLink');
// Формируем объект revenue
const revenue = Array.from(blocks).reduce((acc, block) => {
// Извлекаем название токена
const tokenElement = block.querySelector('.deviceHeader2 span[style*="font-size: 14px;"]');
const token = tokenElement ? tokenElement.textContent.trim() : null;
// Извлекаем сумму Revenue
const revenueRow = Array.from(block.querySelectorAll('td')).find(td => td.textContent.trim() === 'Revenue');
const revenueAmount = revenueRow
? revenueRow.parentElement.previousElementSibling.textContent.trim()
: null;
// Добавляем пару token: revenueAmount в объект
if (token && revenueAmount) {
acc[token] = revenueAmount;
}
return acc;
}, {}); // Начальное значение для reduce — пустой объект {}
// Вывод результата в консоль
console.log(revenue);
// Пример обращения к значению ETH
console.log(revenue['ETC']);
→ Ссылка
Есть сайт, с доходностью того или иного оборудования. Нужно вытащить оттуда текст (раз в 5-10 минут меняющийся) из определенного тега. Но у него нет ни класса, ни ID.
Вот такой путь показывает:
#myUL > li:nth-child(4) > div:nth-child(1) > div:nth-child(1) > div:nth-child(2) > div:nth-child(1) > div:nth-child(2) > div:nth-child(2) > div:nth-child(3) > div:nth-child(1) > center:nth-child(1) > table:nth-child(1) > tbody:nth-child(1) > tr:nth-child(1) > td:nth-child(1)
Пробовал через querySelector, но выдает null
document.querySelector('li:nth-child(4) > div:nth-child(1) > div:nth-child(1) > div:nth-child(2) > div:nth-child(1) > div:nth-child(2) > div:nth-child(2) > div:nth-child(3) > div:nth-child(1) > center:nth-child(1) > table:nth-child(1) > tbody:nth-child(1) > tr:nth-child(1) > td:nth-child(1)').textContent
Вот ссылка (надеюсь можно тут их скидывать) https://hashrate.no/asics/ez100pro
Нужно получить из предпоследнего столбца значение Revenue на монету Etc.
Буду благодарен за помощь и советы.
Ответы (2 шт):
Автор решения: Швеев Алексей
→ Ссылка
Использовав функцию Microsoft edge Копировать путь к JS-коду
я легко получил следующий селектор:
// Первое значение
document.querySelector("#myUL > li:nth-child(N) > div > div > div > div > div.w3-col.l9.m12.s12 > div:nth-child(2) > div:nth-child(2) > div > center > table > tbody > tr:nth-child(1) > td");
// Второе значение
document.querySelector("#myUL > li:nth-child(N) > div > div > div > div > div.w3-col.l9.m12.s12 > div:nth-child(2) > div:nth-child(2) > div > center > table > tbody > tr:nth-child(3) > td");
Где N
- номер строки
Автор решения: MaxDown
→ Ссылка
UPDATE:
Получаем список токенов и их Revenue
// Находим все блоки с классом 'block deviceLink'
const blocks = document.querySelectorAll('.block.deviceLink');
// Формируем объект revenue
const revenue = Array.from(blocks).reduce((acc, block) => {
// Извлекаем название токена
const tokenElement = block.querySelector('.deviceHeader2 span[style*="font-size: 14px;"]');
const token = tokenElement ? tokenElement.textContent.trim() : null;
// Извлекаем сумму Revenue
const revenueRow = Array.from(block.querySelectorAll('td')).find(td => td.textContent.trim() === 'Revenue');
const revenueAmount = revenueRow
? revenueRow.parentElement.previousElementSibling.textContent.trim()
: null;
// Добавляем пару token: revenueAmount в объект
if (token && revenueAmount) {
acc[token] = revenueAmount;
}
return acc;
}, {}); // Начальное значение для reduce — пустой объект {}
// Вывод результата в консоль
console.log(revenue);
// Пример обращения к значению ETH
console.log(revenue['ETC']);