我需要从Website获取一些数据(用户将更改)。然而,Overwatch Stats没有“好”的API。是否可以在Javascript(使用Node.js)中通过HTML标记或排序获取此数据?
例如,这是源代码中的一行:
<span class="summary-hero-name">McCree</span>
页面上显示的3个英雄每个都有summary-hero-name
类,有没有办法引用这些数据?
答案 0 :(得分:1)
所以我想出来了,应该做更多的研究。我使用名为scrape-it
的节点包完成了此操作。
<scrape-it>("https://masteroverwatch.com/profile/pc/us/calvin-1337", {
title: "span.summary-hero-name"
}).then(page => {
console.log(page); // {title: 'McreeWidowmakerBastion' }
});
答案 1 :(得分:0)
我相信this post会有所帮助。我想用AJAX来发出这样的请求:...
<html>
<head>
<script type="text/javascript">
function go(){
var xhr = new XMLHttpRequest();
xhr.open("GET", "https://masteroverwatch.com/profile/pc/us/calvin-1337", false);
xhr.onreadystatechange = function(){
if (xhr.readyState == 4)
{
document.write(xhr.responseText);
}
else
{
document.write("nope");
}
}
xhr.send();}
</script>
</head>
<body onload="go()">
</body>
</html>
通常情况下,如果它位于同一个域上,这会有效,但是,我得到了错误:“请求的资源上没有'Access-Control-Allow-Origin'标头。因此不允许来源'null' ”。这显然是一个安全功能。看起来像跨源资源共享(CORS)是要走的路。祝你好运。
答案 2 :(得分:0)
您可以使用YQL(Yahoo查询语言)。单击下面的链接查看我使用YQL和xpath获取英雄摘要为json的示例。你现在可以解析这个json以获得这些英雄的统计数据。