获取 URL 的 HTML 内容更新
Get HTML content update of an URL
基本上我想更新网页内容,
https://www.investing.com/indices/indices-futures
在 Dow 30 中,最后一个值正在自我更新(来自 Investing.com 服务器的实时更新),我想知道是否有任何方法可以捕获值的变化 而无需 再次请求该网站,以便我可以异步更新我的代码。由于我在网上找到的有关更改通知的所有信息都是基于他们自己的 html,但在我的情况下它是外部的 url,所以我在这里要求获得一些见解
我想你需要检查什么是websocket。这将是一个很酷的开始; https://developer.mozilla.org/en-US/docs/Web/API/WebSockets_API
您可以在 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
- 文档无法访问,因此您需要使用评估
- https 可能需要添加
--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
基本上我想更新网页内容,
https://www.investing.com/indices/indices-futures
在 Dow 30 中,最后一个值正在自我更新(来自 Investing.com 服务器的实时更新),我想知道是否有任何方法可以捕获值的变化 而无需 再次请求该网站,以便我可以异步更新我的代码。由于我在网上找到的有关更改通知的所有信息都是基于他们自己的 html,但在我的情况下它是外部的 url,所以我在这里要求获得一些见解
我想你需要检查什么是websocket。这将是一个很酷的开始; https://developer.mozilla.org/en-US/docs/Web/API/WebSockets_API
您可以在 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
- 文档无法访问,因此您需要使用评估
- https 可能需要添加
--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