Невозможно извлечь основные данные с помощью ThingspeakHTTP.

Я ничего не знаю о HTML, но хочу получить процент вероятности того, что северное сияние будет видно с этой веб-страницы. http://aurorawatch.ca/. Я ввел это в поле URL-адреса и выбрал версию HTML 1.

Когда я проверяю нужный текстовый элемент и копирую Xpath, я получаю следующее:

"/html/body/div1/div[5]/table/tbody/tr1/td/div1/table[2]/tbody/tr [2]/td/div/table/tbody/tr/td[2]/span"

и введите это значение в поле «строка анализа» приложения ThingSpeak API, но получите следующую ошибку:

"Ошибка анализа документа, попробуйте другую строку анализа."

Большинство людей, столкнувшихся с этой ошибкой, похоже, получают данные, которые не загружаются вместе с исходной страницей, поэтому я думаю, что что-то упускаю.

Если есть лучшее решение для передачи этого номера на мой ESP8266, чем создание API ThingsSpeak, я бы тоже хотел его услышать!

, 👍0

Обсуждение

Опубликуйте свой код для лучшего понимания вопроса, @leoc7

Возможно, веб-сайт блокируетthingspeak как парсер. Вы хотите, чтобы ESP8266 выполнял запрос GET, а затем анализировал данные. Я бы предложил использовать http://www.aurorawatch.ca/index.php?option=com_content&task=view&id=28&Itemid=47, поскольку это а) меньше данных и б) с меньшей вероятностью их изменения., @Majenko

@Маженко Спасибо за быстрый ответ! Это хорошее предложение — использовать альтернативную страницу. Я тоже думал, что это возможно, но когда я оставляю строку парсера пустой, запрос API ThingsSpeak возвращает полный сайт. Я знаю, что это выходит за рамки вопроса, но есть ли у вас какие-либо рекомендации о том, с чего начать изучение того, как выполнить нужный мне запрос GET от ESP8266?, @Alex Kuebel

почему вы выбираете HTTP 1.0 (HTML 1?), @Juraj

@Juraj Я думаю, именно на этой версии построен веб-сайт, с которого я пытаюсь получить данные., @Alex Kuebel

Я не вижу причин, по которым это не сработает. Я вручную загрузил исходный код веб-страницы, предварительно обработал его с помощью xmllint, затем обработал каждый узел xpath, и все получилось именно так, как должно быть. Однако он не может его разобрать. Возможно, в содержании есть что-то, что не нравится анализатору ThingSpeak., @Majenko

Я проверил дату, и она вернула логотип. что-то добавляется на страницу со скриптом или стилем?, @Juraj

Хорошо, у меня работает. Ему не нравится первое «тело». Удалите это, и он начнет работать. Также полезно добавить в конец /text(). Я анализирую эту страницу: http://www.aurorawatch.ca/index.php?option=com_content&task=view&id=28&Itemid=47 с помощью этого xpath: /html/body/div[1]/div[5]/ таблица[2]/tr[3]/td/table/tbody/tr/td[2]/span/text(), @Majenko

просто ради интереса: вот еще сайт, на котором есть проценты видимости полярных сияний.... https://services.swpc.noaa.gov/text/aurora-nowcast-map.txt, @jsotola

@jsotola, это то место, куда я заглянул в первую очередь, где есть несколько замечательных ресурсов! Однако формат текстового массива немного двусмысленен (от -90 до 90 градусов сверху вниз или снизу вверх?), и мне посчастливилось поступить в университет, который заставил Аврору следить за городом, в котором я живу., @Alex Kuebel


1 ответ


Лучший ответ:

0

Вам следует использовать эту страницу, поскольку другая является главной страницей сайта и, скорее всего, будет динамической:

  • http://www.aurorawatch.ca/index .php?option=com_content&task=view&id=28&Itemid=47

XPath также немного отличается. Первый tbody в указанном пути на самом деле не существует. Вам также следует добавить /text() в конец пути, чтобы просто вернуть текстовое содержимое узла:

  • /html/body/div[1]/div[5]/table[2]/tr[3]/td/table/tbody/tr/td[2]/span/text()
,