Множественные индексы в XPath в Google Таблицах importxml

Я использую некоторые данные из Bloomberg в электронной таблице Google, две строки читаются как:

=importxml("https://www.bloomberg.com/quote/ELIPCAM:BZ";"(//span)[28]")
=importxml("https://www.bloomberg.com/quote/ELIPCAM:BZ";"(//span)[31]")

Однако существует большое количество importxml и importhtml, и многие из них запрашивают одну и ту же веб-страницу. В результате слишком много ячеек находятся в вечном состоянии «Загрузка ...». Google даже представляет сообщение:

«Загрузка данных может занять некоторое время из-за большого количества запросов. Постарайтесь уменьшить количество функций IMPORTHTML, IMPORTDATA, IMPORTFEED или IMPORTXML в созданных вами электронных таблицах».

Итак, есть ли способ объединить запросы, как указано выше? Конечно, я мог бы открыть новую вкладку и импортировать все (т.е. использовать только "(//span)" для запроса), но, кроме беспорядка, я боюсь, что я все равно буду запрашивать больше, чем мне нужно. в идеале должен быть какой-то запрос для нескольких пронумерованных узлов, что-то вроде "(//span)[28,31]", но это, очевидно, возвращает ошибку.


person Mefitico    schedule 10.12.2019    source источник


Ответы (2)


Попробуйте так и посмотрите, работает ли он:

=importxml("https://www.bloomberg.com/quote/ELIPCAM:BZ","(//span)[position()=28 or position()=31]")
person Jack Fleeting    schedule 10.12.2019
comment
кстати, также было полезно использовать "(//span)[position()>28 or position()<31]" или подобное, чтобы получить диапазон значений =) - person Mefitico; 10.12.2019
comment
Просто примечание для будущих читателей, на данный момент это больше не работает с моей таблицей. - person Mefitico; 03.10.2020

используйте | между XPath, например:

=IMPORTXML("https://www.bloomberg.com/quote/ELIPCAM:BZ", 
 "(//span)[28] | (//span)[31]")

0

person player0    schedule 10.12.2019