Как оптимизировать множество importxml с одного и того же сайта?

Ромен Капрон

У меня есть таблица Google, где строки - это продукты, а столбцы - информация об этих продуктах (материал, цвет, цена, ...).

Эта информация извлекается с помощью функции IMPORTXML с соответствующим запросом xpath. В следующем примере столбец D - это URL-адрес этого продукта. Эти функции извлекают информацию (стекло, цвет и тип) для продукта в строке 3:

=IMPORTXML(D3,"//table[@class='info-table']/tr[th/text()[contains(.,'Glass')]]/td")
=IMPORTXML(D3,"//table[@class='info-table']/tr[th/text()[contains(.,'Color')]]/td")
=IMPORTXML(D3,"//table[@class='info-table']/tr[th/text()[contains(.,'Type')]]/td")

Для каждого продукта извлекается около 10 столбцов и, следовательно, 10 различных функций IMPORTXML для одного и того же URL-адреса.

Он работает правильно, когда продуктов мало, но когда продуктов слишком много, извлекается только некоторая информация, а другие ячейки остаются замороженными со значением «Загрузка ...».

Единственный обходной путь, который я нашел, - это вручную скопировать / вставить полученные значения (Ctrl + C, Ctrl + Maj + v), а затем разблокировать некоторые другие ячейки и начать импорт значений. В конце концов, мне нужно сделать это для всех ячеек, а это занимает много времени.

  1. Почему у меня клетки остаются замороженными в "Загрузка ..."? Есть ли ограничение со стороны Google?
  2. Следует ли мне адаптировать свои функции для оптимизации процесса и, если возможно, уменьшения количества функций IMPORTXML?
  3. Есть ли у вас лучшее решение, чем мой трудоемкий обходной путь?
  4. Запрос xpath всегда очень похож. Можно ли использовать список предопределенных элементов. Затем используйте другие функции Google Sheet, чтобы получить тот же результат, но только с одной функцией IMPORTXML.

Например:

=IMPORTXML(D3,"//table[@class='info-table']/tr[th/text()[contains(.,{'Glass', 'Color', 'Type'})]]/td")
Ромен Капрон

Эту проблему можно решить, адаптировав запрос xpath и используя комбинацию различных формул Google Spreadsheet.

  1. Можно объединить несколько запросов xpath, используя символ |
  2. Чтобы получить только первый результат, вы можете окружить запрос xpath (YOUR_XPATH) [1]
  3. Функция TRANSPOSE переместит несколько результатов в одну строку.

Например:

=TRANSPOSE(IMPORTXML(D2,"
(//table[@class='info-table']/tr[th/text()[contains(.,'Diameter')]]/td)[1] | 
(//table[@class='info-table']/tr[th/text()[contains(.,'Material')]]/td)[1] | 
(//table[@class='info-table']/tr[th/text()[contains(.,'Glass')]]/td)[1] | 
(//table[@class='info-table']/tr[th/text()[contains(.,'W/R')]]/td)[1] | 
(//table[@class='info-table']/tr[th/text()[contains(.,'Caliber')]]/td)[1] | 
(//table[@class='info-table']/tr[th/text()[contains(.,'Type')]]/td)[1]"))

Таким образом, для каждого продукта существует только один importXML.

Эта статья взята из Интернета, укажите источник при перепечатке.

Если есть какие-либо нарушения, пожалуйста, свяжитесь с[email protected] Удалить.

Отредактировано в
0

я говорю два предложения

0обзор
Войти в системуУчаствуйте в комментариях

Статьи по теме

Периодически обновляйте функцию электронной таблицы IMPORTXML ()

XPATH внутри IMPORTXML с апострофом в запросе

Не можете получить данные с помощью importXML с динамической веб-страницы?

Можно ли использовать функцию IMPORTXML и изменить ее запросом?

Есть ли способ использовать функцию IMPORTXML в Google Таблицах для одновременного импорта двух запросов?

ImportXML возвращает пустой

Как использовать IMPORTXML для импорта только ограниченного диапазона в таблице, а не всей таблицы?

Проблема с получением указанной ссылки на изображение с помощью importxml

Ошибка ImportXML: импортированное содержимое XML не может быть проанализировано

Импортируйте данные через Importxml только от определенной команды

Как я могу ограничить свой результат до 1 с помощью importXML

Как преобразовать даты, извлеченные из IMPORTXML, в фактические даты

importxml очистить значение из таблицы

Функция ImportXML после входа в систему

Ограничьте количество строк, собираемых IMPORTXML

ImportXML Google Таблицы возвращает импортированное содержимое пустым

importxml для тега HTML без класса

importxml как получить цену биткойна

Запрос IMPORTXML, возвращающий избыточные данные в нескольких ячейках

Использование ImportXML для идентификации нескольких таблиц

Importxml Импортированное содержимое пусто

Как импортировать денежные данные с помощью IMPORTXML?

Как я могу сделать регулярное выражение для использования с xPath и ImportXML?

Использование функции importXML для получения данных сектора запасов

Как получить содержимое таблицы с помощью скрипта приложений или importxml?

Я не могу заставить формулу работать в столбце, который ссылается на другую ячейку, которая использует команду importxml

importxml для сбора цен из журнала подрыва

IMPORTXML показывает ошибку при парсинге данных с веб-сайта

Я не могу получить доступ к данным на веб-сайте с помощью xpath и IMPORTXML, потому что фрагменты кода находятся за пределами исходных данных

TOP список

  1. 1

    Распределение Рэлея Curve_fit на Python

  2. 2

    Merging legends in plotly subplot

  3. 3

    Как я могу нарисовать заполненный прямоугольник в JFreeChart?

  4. 4

    Проблема с window.print в Safari

  5. 5

    Перебирайте несколько столбцов в фрейме данных Panda и находите уникальные значения подсчета

  6. 6

    JetBrains Rider enable-migrations для ASP.NET MVC на Mac

  7. 7

    migrate MongoDB container service - mongodump command not found

  8. 8

    Как создать переменную с использованием класса Color, который включает только выбранные цвета?

  9. 9

    Ошибка XDG0062: не удалось установить «Контент». в режиме навигации MUXC

  10. 10

    Как загрузить ZIP-файл в Nexus с помощью Maven и избежать создания артефакта pom в Nexus?

  11. 11

    QString удалить последние символы

  12. 12

    Symfony 4, Postgres - `Неверное значение параметра client_encoding:« utf8mb4 »` при выполнении команды doctrine

  13. 13

    HTML Body говорит cz-shortcut-listen = "true" с инструментами разработчика Chrome?

  14. 14

    В типе Observable <unknown> отсутствуют следующие свойства из типа Promise <any>.

  15. 15

    Как создать простую анимацию в Xamarin с помощью SkiaSharp

  16. 16

    Установка pip с использованием Python 2.7, установленного в ArcGIS

  17. 17

    Qt - не растягивать виджеты в QVBoxLayout

  18. 18

    How to convert C++/CLI string to const char*

  19. 19

    sbt: Как разрешить зависимости Maven, использующие свойства Maven

  20. 20

    Flutter: Unhandled Exception: FileSystemException: Creation failed, path = 'Directory: '' (OS Error: Read-only file system, errno = 30)

  21. 21

    Как добавить Swagger в веб-API с поддержкой OData, работающий на ASP.NET Core 3.1

популярныйтег

файл