Запрос XPath для извлечения URL-адреса

#xpath #google-sheets #extract #data-extraction

#xpath #google-sheets #извлечь #извлечение данных

Вопрос:

Мне нужно извлечь http://site.ru/ из этого кода:

 <div class="one">
<dl>
<dt class="two">
<span class="name">Site</span>
</dt>
<dd class="three">
<span class="js-pseudo-link" data-url="rAnDoMlEtTeRsAnDnUmBeRs" style>
<a href="http://site.ru/" class rel="nofollow" target="_blank" style> http://site.ru/ </a>
</span>
</dd>
</dl>
</div>
  

Я использую этот запрос XPath: //div//dl//dd//span//a/@href

Но это не работает. Он ничего не возвращает. Я новичок в XPath.

Комментарии:

1. В зависимости от сайта вам может быть запрещено это делать, поскольку страница создается после загрузки. Что это за веб-сайт?

2. msk.spravker.ru/avtoservisy-avtotehcentry

3. К сожалению, источник данных, который вы ищете, является пустым узлом span (class js-pseudo-link ). URL-адрес данных — это ссылка в кодировке base64, которую вы хотите. Этот узел заполняется только после загрузки. ImportXML по какой-то причине игнорирует узлы без текста, и нет способа заставить его этого не делать. Чтобы обойти это, похоже, вам придется написать скрипт приложений, который может обрабатывать пустые узлы или просто получает необработанный HTML-код и анализирует его.

Ответ №1:

К сожалению, источник данных, который вы ищете, является пустым узлом span (class js-pseudo-link ). data-url Атрибут содержит ссылку в кодировке base64, которую вы хотите. Этот узел заполняется только после загрузки. ImportXML по какой-то причине игнорирует узлы без текста, и нет способа заставить его этого не делать. Чтобы обойти это, похоже, вам придется написать скрипт приложения, который может обрабатывать пустые узлы или просто получает необработанный HTML-код и анализирует его.