Импорт Google Sheets XML Возвращает пустое значение - PullRequest
1 голос
/ 28 апреля 2020

Я пытаюсь очистить этот сайт (https://kamadan.gwtoolbox.com/) листами Google для материальных затрат на игру, в которую я играю. Есть две таблицы; «Общие материалы» и «Редкие материалы» в выпадающем меню в правом верхнем углу. Я пытаюсь вытащить значения для обоих по мере обновления цен. Я скопировал полный Xpath и использовал приведенную ниже функцию в пустой ячейке на листе.

=importxml("https://kamadan.gwtoolbox.com/","/html/body/div[2]/div[1]/div/div[2]/table/tbody")

Это возвращает ошибку # N / A о том, что возвращается пустое значение.

I также пробовал это с обычным xpath ...

=importxml("https://kamadan.gwtoolbox.com/","//*[@id='trader-overlay-items']")

, который просто возвращает пустую ячейку. Я также попробовал оба метода, используя функцию проверки через chrome для предков и потомков, которые возвращают одну из двух ошибок выше.

Извините, если это действительно просто. Я совсем не знаком с Xpaths или html. Я в основном балуюсь VBA в Excel.

1 Ответ

1 голос
/ 28 апреля 2020

Ответ:

IMPORTXML не удается получить данные, заполненные сценарием, поэтому использование этой формулы для извлечения данных из этой таблицы невозможно.

Дополнительная информация:

Как вы уже упоминали, вы можете попытаться получить данные непосредственно из таблицы, используя:

=IMPORTXML("https://kamadan.gwtoolbox.com/","//table[@id='trader-overlay-items']")

, которая просто получает пустую ячейку.

Я пошел еще дальше и попытался провести обратный инжиниринг, вызвав IMPORTXML для HTML элементов на странице, выполнив шаги:

=IMPORTXML("https://kamadan.gwtoolbox.com/","html")
=IMPORTXML("https://kamadan.gwtoolbox.com/","html/body")
=IMPORTXML("https://kamadan.gwtoolbox.com/","html/body/div[1]")
=IMPORTXML("https://kamadan.gwtoolbox.com/","html/body/div[1]/div[0]")
...

html/body/div[1]/div[0] - первый путь который не дает импортируемого контента, и мы можем видеть из импорта html/body, что полное тело не содержит информацию и только ее шаблон - в ячейке B1 у нас есть ссылки на «Обычные материалы» и «Редкие материалы»:

enter image description here

И в D1 мы начинаем видеть JavaScript и JSON объекты, которые не вызываются IMPORTXML, и поэтому результаты из которых не могут быть получены:

enter image description here

Как вы можете n посмотрите, если вы отключите JavaScript на сайте, практически ничего не отображается, и поэтому не может быть получено с помощью IMPORTXML:

enter image description here

Я знаю, что, как правило, это плохие новости, но я надеюсь, что это полезно для вас!

Ссылки:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...