Хобрук: Ваш путь к мастерству в программировании

Кукольник: Как перейти к элементам, полученным из $$?

Следующий вопрос похож, но ответ бесполезен: Как получить детей элементы от Puppeteer. В этих ответах пользователи показывают, как получить атрибут элемента. Мне нужно получить доступ к списку дочерних узлов.

На странице, которую я очищаю, есть 30 блоков с очень сложным и разным содержанием.

Моя цель состояла в том, чтобы - получить внешние поля (DIVs) - проверить, присутствуют ли некоторые конкретные вложенные элементы html - получить содержимое вложенного элемента

Например - в первом поле есть изображение с вложенной ссылкой - во втором поле есть 4 <P>s

Благодаря ответу на мой предыдущий вопрос я могу получить все DIV

я делаю это

  const boxes = await page.$$("DIV.a-row DIV.spinnerDeal DIV.box DIV.details")

  boxes.forEach((item) => {
       ... now, for example how to check if the item contains a P with a specific class=
  })

Итак, мой вопрос (например), как проверить, содержит ли элемент P с определенным классом.

Более общий вопрос: как просматривать вложенные элементы каждого элемента?

Я старался

boxes.forEach((item) => {
  console.log(item.getChildNodes())
  console.log("---")
})

Но getChildNodes() is not a function

11.05.2020

  • Итак, исходя из вашего предыдущего вопроса, вы должны использовать функцию оценки внутри цикла. 11.05.2020

Ответы:


1

Я думаю, это работает для вас.

const pTags = await page.$x( '//DIV.a-row//DIV.spinnerDeal//DIV.box//DIV.details//p' );

После того, как вы получите все ptags, вы можете проверить каждый ptags с родительским узлом, чтобы вы могли получить, где он включен.

12.05.2020
Новые материалы

Почему я, журналист, в отчаянии создал сетевое приложение B2B
Почему я, журналист, в отчаянии создал сетевое приложение B2B Итак, вот верхняя линия. Я построил OnGreentech, сеть для индустрии возобновляемых источников энергии. Если вам интересно,..

Ограниченные машины Больцмана (RBM)
Практическое руководство по обучению RBM.pdf Задний план RBM использовались в качестве генеративных моделей для многих различных типов данных, включая помеченные и немеченые. В их условной..

Обнаружение маски или без маски с YOLO😷
Это руководство по созданию пользовательской модели обнаружения объектов для обнаружения людей, носящих или не носящих маски в общественных местах, созданной с использованием YOLO v3. Модель..

Управление приборами в чистом PHP
Этот пост дополняет эти: E2e тестирование Работа с несколькими средами . Мы разработали это решение для базы данных MariaDB, оно может отличаться, если вы используете другую базу..

Неделя 1 — Кентерберийские рельсы.
Неделя 1 — Кентерберийские рельсы. So. Мы все еще живы, все еще усердно работаем и еще не пассивно-агрессивно рассылаем друг другу сообщения «за мое последнее сообщение в Slack…», поэтому, на..

Цена завтрашнего дня  — Джефф Бут
Технологический прогресс в наши дни происходит с молниеносной скоростью, и мы не в состоянии это понять. Джефф в основном говорит о влиянии технологий на экономику по всему миру. Он твердо верит..

Данные: суперсила современного бизнеса
В цифровой среде данные превратились из простого побочного продукта бизнес-операций в центральный актив, стимулирующий рост и инновации. Крейг Манди, бывший главный директор по стратегии..