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