调用一个网站,并使用javascript抓取文本
Call a website and grab text using javascript(api?)
我正在尝试使用这个网站:https://api.mojang.com/users/profiles/minecraft/[VARIABLE_HERE](以https://api.mojang.com/users/profiles/minecraft/Minecraftiscewl为例)
我想根据用户输入更改变量,并从页面抓取文本:
{" id ":"36 c84ed1708a4fc1b31e031bf1511de6"、"名称":"[TEXT_HERE]"}
我可以用javascript(以及如何)做到这一点,还是我需要使用PHP?
如何在没有jQuery的情况下进行AJAX调用?向您展示如何执行此操作。
基本上你对那个URL做一个XMLHTTPRequest,期望application/json作为接受类型。然后使用JSON将其拉入JS。parse将传入的数据转换为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,您也可以使用答案中所述的jQuery。JSON.parse()调用产生的对象将恰好是您发布的JSON,因此您可以这样做:
var playerData = JSON.parse(dataFromAjaxCall);
console.log(playerData.name); //[TEXT_HERE]
相关文章:
- 如何使用javascript隐藏文本
- Javascript-在文本区域中断,但不在段落中中断
- 使用javascript从文本文件中获取值
- 如何在外部文档中使用javascript将文本区域的内容保存为变量
- 1种颜色的Javascript闪烁文本更长
- 禁用/启用基于单选/选择选项所选Javascript的文本框
- 使用JavaScript淡化文本颜色
- 用javascript读取文本文件的第一行
- 使用JavaScript将文本更改为img
- 如果没有从下拉列表中选择任何值,则允许使用php、mysql、javascript将文本框添加到mysql表中
- 使用Javascript切换文本颜色
- 编辑后无法用Javascript填充文本框
- 使用Javascript更改文本区域的颜色
- 使用VBScript或Javascript从文本框(文本区域)中删除最后一行空/空行
- 如何使用JavaScript从文本框中检索数据
- I'我试图用javascript制作文本框,并将输入的值发送到数组中的文本框中进行添加
- HTML5使用Javascript填充文本标记的有效方式
- javascript:将文本附加到文本区域的性能
- 调用一个网站,并使用javascript抓取文本
- 如何使用python从javascript生成的页面中抓取文本