基本上我想更新网络内容, https://www.investing.com/indices/indices-futures
在Dow 30中,最后一个值是自我更新(Investing.com服务器上的实时更新),我想知道是否有任何方法可以捕获无值的更改,而无需再次访问网站,以便我可以异步更新代码。由于我在网上发现的所有有关更改通知的信息都是基于他们自己的html,但就我而言,它是外部url,所以我要求在这里获得一些见识
答案 0 :(得分:1)
您可以在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一起使用的一些更新。
let
替换为var
--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
答案 1 :(得分:0)
我认为您需要检查什么是websocket。这将是一个不错的开始; https://developer.mozilla.org/en-US/docs/Web/API/WebSockets_API