@Gera01
Unity, С# и больше ничего.

Как реализовать получение ссылки на которую ведет кнопка элемента (puppeteer)?

Есть код элемента:

<div class="task-performer task-602613">
    <div class="task-performer_cover">
        <img src="https://i.ytimg.com/vi/s5EoR7p28Ds/hqdefault.jpg" alt="img">
        <a href="/view-video/602613" target="_blank" data-ajaxe="false" class="task-performer_play">
            <img src="/static/flatonica/img/play-fill.svg" alt="ico">
        </a>
    </div>
    <div class="task-performer_info">
        <div class="task-performer_type">
            <img src="/static/flatonica/img/video-type.svg" alt="ico">
            <span>
                Просмотр видео            </span>
        </div>
        <div class="task-performer_time">
            <img src="/static/flatonica/img/clock-task.svg" alt="ico">
            <span>
                35&nbsp;сек.            </span>
        </div>
    </div>
    <div class="task-performer_bottom">
        <div class="task-performer_price">
            +$&nbsp;0.000532875        </div>
        <a href="/view-video/602613" target="_blank" data-ajaxe="false" class="task-performer_btn">
            Начать        </a>
    </div>
</div>


И мне нужно найти массив всех элементов на странице у которых <span>35&nbsp;сек.</span> = 35 секунд и получить ссылку на него из href="/view-video/602613" как возможно такое реализовать?
  • Вопрос задан
  • 150 просмотров
Пригласить эксперта
Ответы на вопрос 3
let array = [];
let performer_time = $('.task-performer_time span');
    performer_time.each(function(index, value) {
        if(value.innerText === '35 сек.'){
            array.push($(this).closest('.task-performer').find('.task-performer_cover a').attr('href'));
        }
    })
Ответ написан
@jsnk
Программист
Получи коллекцию img и коллекцию span. Просматривая коллекцию span анализируй innerHTML и при совпадении обратись в коллекцию img по индексу совпадения и получи значение src
Ответ написан
Комментировать
sasha-hohloma
@sasha-hohloma
Fullstack Developer
Сам pupperter вроде не станет выполнят внешний JS на странице, только тот что подключен в HTML. Всё как в настоящем браузере. В данном случае Вам необходимо получить HTML как текст, а уже потом парсить оттуда DOM-дерево с тегами для элементов. Если работаете в среде NodeJS, то рекомендую использовать htmlparser2, простой и один из самых быстрых парсеров DOM-дерева
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы