Получить HTML-обновление содержимого URL - PullRequest
0 голосов
/ 06 марта 2019

В основном я хочу, чтобы содержимое обновлений в Интернете было https://www.investing.com/indices/indices-futures source

В Dow 30 последнее значение обновляется само (в режиме реального времени)обновление с сервера Investing.com), и я хотел бы знать, есть ли какой-нибудь метод для захвата изменения значений без повторного запроса веб-сайта, чтобы я мог обновлять свой код асинхронно.Поскольку все, что я нашел в Интернете об уведомлении об изменениях, основано на их собственном html, но в моем случае это внешний URL-адрес, поэтому я прошу здесь кое-что понять

Ответы [ 2 ]

1 голос
/ 06 марта 2019

Вы можете добавить некоторый код в консоль Chrome и отслеживать это значение каждую секунду, чтобы уведомить вас.

let last_value = -1
let class_selector = 'pid-8873-last'
setInterval(function() {
  let v = document.getElementsByClassName(class_selector)[0].innerText
  if (v != last_value) {
    console.log("Value as been updated to " + v)
    last_value = v
  }
}, 1000)

> Value as been updated to 25,799.5
> Value as been updated to 25,798.5

Но вы должны открыть браузер и создать запрос ajax при обновлении значения.Если вам не нужен браузер, но вы запустили сервер, вы можете проверить PhantomJS


РЕДАКТИРОВАТЬ С PHANTOMJS

Это обновление длясделать для работы с PhantomJS.

  • Вам необходимо заменить let на var
  • документ недоступен, поэтому вам нужно использовать оценку
  • http s может потребоваться добавить --ssl-protocol=any

. / test.js

var page = require('webpage').create();
page.open('https://www.investing.com/indices/indices-futures', function(status) {
  var last_value = -1

  setInterval(function() {
    var value = page.evaluate(function() {
      return document.getElementsByClassName('pid-8873-last')[0].innerText
    })

    if (value != last_value) {
      console.log("Value as been updated to " + value)
      last_value = value
    }
  }, 1000)
//  phantom.exit()
})

Затем запустить его из того жекаталог:

# phantomjs test.js 
Value as been updated to 25,799.0
0 голосов
/ 06 марта 2019

Я думаю, вам нужно проверить, что такое websocket. это было бы здорово начать; https://developer.mozilla.org/en-US/docs/Web/API/WebSockets_API

...