#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-код и анализирует его.