Использование importXML с веб-сайтом, заполненным php, и парсинг в googlesheets

Я пытаюсь импортировать данные с этого веб-сайта с помощью IMPORTXML в таблицу Google http://14.139.247.11/citywx/city_weather.php?id=42488

Я хочу очистить данные при минимальной температуре (oC)

Загрузка данных из этой таблицы в листы с использованием IMPORTHTML работает просто отлично с использованием этого =IMPORTHTML("http://14.139.247.11/citywx/city_weather.php?id=42488","table",2)

Но попытка очистить с помощью IMPORTXML не работает. Используя инструменты разработчика Chrome, я скопировал путь XML, и он показывает, что

/html/body/center/font/table[1]/tbody/tr[1]/td[2]/table/tbody/tr[4]/td[1]/font

Это возвращает:

NA ie.("Imported Content is Empty")

Я скопировал весь html на свой сервер. Очистка работает локально, когда я удаляю выделенный полужирным шрифтом шрифт из /html/body/center/font/table[1]/tbody/tr[1]/td[2]/table/tbody/ tr[4]/td[1]/font и установите для него значение: /html/body/center/table[1]/tbody/tr[1]/td[2]/table/tbody/tr[4]/td[1]/font

Однако это все еще не работает на исходном сайте.

Это не похоже на случай динамического веб-сайта, поскольку importHTML работает, и я не смог найти ни одного работающего javascript. Что мне здесь не хватает?


person pkrulz    schedule 22.08.2018    source источник


Ответы (1)


Вы можете использовать Index, чтобы получить позицию строки и столбца для минимальной температуры из импортированной таблицы, используя IMPORTHTML, а не IMPORTXML. Источником является HTML, а не XML.

=INDEX(IMPORTHTML("http://14.139.247.11/citywx/city_weather.php?id=42488","table",2),4,2)

Простыня:

Результат

person QHarr    schedule 30.08.2018
comment
Это была резервная копия на случай, если мы не сможем заставить работать importxml. Эта стратегия отлично работает. Спасибо ! - person pkrulz; 21.11.2018
comment
Не совсем ! Воспользовался бэкапом :) Однако я так и не смог смириться с тем, что не могу заставить его работать как положено. - person pkrulz; 21.11.2018
comment
Я не смог принять это как ответ. Наверное, потому что ты прокомментировал, а не ответил. Нужно ли мне делать что-то по-другому - person pkrulz; 25.11.2018
comment
Если вы попытаетесь проголосовать, это не сработает. Так что это, вероятно, то, что вы пытались. Вы всегда можете принять ответы на свои вопросы. - person QHarr; 25.11.2018
comment
Принято как ответ :) - person pkrulz; 11.01.2019