使用javascript调用网站并抓取文本(api?)

时间:2015-07-17 16:50:11

标签: javascript php

我正在尝试使用此网站:https://api.mojang.com/users/profiles/minecraft/[VARIABLE_HERE] (以https://api.mojang.com/users/profiles/minecraft/Minecraftiscewl为例)

我想根据用户输入更改变量,并从页面中获取文本:

{" ID":" 36c84ed1708a4fc1b31e031bf1511de6""名称":" [TEXT_HERE]"}

我可以使用javascript(以及如何)执行此操作,还是需要使用PHP?

1 个答案:

答案 0 :(得分:1)

How to make an AJAX call without jQuery?的答案向您展示了如何执行此操作。

基本上,您对该URL进行XMLHTTPRequest,期望application / json为接受类型。然后使用JSON.parse将其拉入JS,将传入的数据转换为JS对象。然后,您可以正常与它进行交互。

<script type="text/javascript">
function loadXMLDoc() {
var xmlhttp;

if (window.XMLHttpRequest) {
    // code for IE7+, Firefox, Chrome, Opera, Safari
    xmlhttp = new XMLHttpRequest();
} else {
    // code for IE6, IE5
    xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}

xmlhttp.onreadystatechange = function() {
    if (xmlhttp.readyState == XMLHttpRequest.DONE ) {
       if(xmlhttp.status == 200){
           document.getElementById("myDiv").innerHTML = xmlhttp.responseText;
       }
       else if(xmlhttp.status == 400) {
          alert('There was an error 400')
       }
       else {
           alert('something else other than 200 was returned')
       }
    }
}

xmlhttp.open("GET", "https://api.mojang.com/users/profiles/minecraft/[VARIABLE_HERE]", true);
xmlhttp.send();

}

有许多方法可以与XMLHTTPRequest对象进行交互(参见:https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest)。或者,您也可以使用答案中所述的jQuery,如果您已将其加载用于其他目的。

JSON.parse()调用产生的对象只是你发布的JSON,所以你会做类似的事情:

var playerData = JSON.parse(dataFromAjaxCall);
console.log(playerData.name); //[TEXT_HERE]