Google Sheets - Проблемы с импортом XML на определенной странице

Попытка использовать ImportXML в Google Sheets для получения определенного фрагмента текста, но у меня возникли проблемы после поиска ответов в моей заднице.

Надеясь, что кто-то здесь может помочь исправить проблему.

Страница: https://www.afi.com.au/ И текст, который я хочу импортировать, находится в розовом поле:

Вот где я с кодом, я пытался получить XPath, но мне не нравится то, что у меня есть, я уверен, что кто-то здесь заметит пробу в одно мгновение...

=IMPORTXML("http://www.afi.com.au","//body[@class='entry-homepage type-homepage']/div[@class='page page-home']/div[@class='page__item']/div[@class='js-evo7-component']/div[@class='hero']/div[@class='hero__inner-root rellax']/div[@class='hero__inner']/div[@class='container']/div[@class='grid']/div[@class='grid__item one-third palm-one-whole']/div[@class='hero__share-price']/div[@class='price-number']//text()")

2 ответа

Решение

Это не будет возможно. часть информации, которую вы пытаетесь обработать, контролируется JavaScript, а Google Sheets вообще не может читать JS. Вы можете проверить это, просто отключив JS на данном сайте:

Как насчет этого обходного пути? В этом обходном пути данные извлекаются с использованием xpath, а значение извлекается с помощью регулярного выражения. Кажется, что извлеченные данные обновляются при извлечении страницы. Поэтому я использовал этот метод. Модифицированная формула выглядит следующим образом. Пожалуйста, подумайте об этом как один из нескольких ответов.

Пример формулы:

В этой формуле http://www.afi.com.au помещается в ячейку "А1".

=REGEXEXTRACT(IMPORTXML(A1,"//div[@class='js-evo7-component']/@data-config"),"netAssetBacking"":{""price"":""([\d.]+)")
  1. Получить данные, используя xpath //div[@class='js-evo7-component']/@data-config с IMPORTXML(),
  2. Получить значение с помощью регулярного выражения netAssetBacking"":{""price"":""([\d.]+) с REGEXEXTRACT(),

Результат:

Рекомендации:

Другие вопросы по тегам