Правило Xpath: попытка получить список ссылок под определенным тегом заголовка на веб-странице

Заранее благодарим вас за ваше время и поддержку.

Я нахожусь в процессе контроля качества запуска нового сайта, и в рамках этого я запускаю инструмент сканирования под названием Screaming Frog для оценки частей структуры сайта.

Инструмент сканирования довольно мощный и позволяет выполнять пользовательские извлечения через Xpath, который я сейчас пытаюсь использовать.

Проблема, с которой я сталкиваюсь, заключается в том, что я хотел бы получить определенные ссылки, расположенные в определенных модулях рециркуляции. Сами модули, к сожалению, не имеют правильных меток div... поэтому вместо этого я должен использовать заголовок модуля H3 в качестве своего идентификатора.

<h3>Further Reading:</h3>   
    <ul>
      <li>Link 1</li>
      <li>Link 2</li>
      <li>Link 3</li>
      <li>Link 4</li>
      <li>Link 5</li>
   </ul>

Я хотел бы иметь возможность извлекать значения ссылок внутри списка дальнейшего чтения.

Можно ли найти конкретный заголовок для дальнейшего чтения в документе, а затем вытащить ссылки в одном запросе Xpath?

Еще раз спасибо. Мне очень нравится узнавать об xpath и читать об этом здесь, в Stack Overflow.

С уважением,

Дэррил


person Darryl Peddle    schedule 03.12.2019    source источник


Ответы (2)


вы можете использовать функцию contains() xpath. и оси xpath.

//h3[text()='Further Reading:']/following-sibling::ul[1]
person Ed Bangga    schedule 03.12.2019

Вы можете использовать ось following-sibling:

//h3/following-sibling::ul/li

или если вы хотите быть конкретным:

//h3[text() = 'Further Reading:']/following-sibling::ul/li
person Chris Chávez    schedule 03.12.2019
comment
Вы, ребята, потрясающие. Спасибо. Еще одна морщинка. Когда я извлекаю данные, у меня есть 4 варианта: Извлечь текст, Значение функции, Извлечь внутренний HTML, Извлечь элемент HTML. Я хотел бы получить значение href И текст для ссылки... но не полный элемент html. Теперь я могу получить текст без проблем, основываясь на вашей помощи выше (еще раз спасибо).... но если бы я хотел извлечь саму ссылку href (страница, на которую ссылается)... как бы изменился приведенный выше xpath для этого? Это потрясающе... так весело и ценно. Спасибо еще раз. - person Darryl Peddle; 03.12.2019
comment
Я понял! Я добавил a/@href, и все получилось. БОЛЬШОЕ СПАСИБО! Очень ценю! - person Darryl Peddle; 03.12.2019