Javascript 从API调用外部URL

Javascript 从API调用外部URL,javascript,arrays,node.js,json,express,Javascript,Arrays,Node.js,Json,Express,当我从API调用URL时,如果我想从URL获取一些JSON数据,我会得到一个CAPTCHA页面 我试图从JSON数组中获取数据,但当我从API中请求数据时,我只得到一个CAPTCHA的enpoint,我只需要一些数据,比如openPrice、highPrice、price和lowPrice。但是我只得到一个CAPTCHA表单,而不是JSON数组 var express=require(“express”); var bodyParser=require(“主体解析器”); var sql=要求(

当我从API调用URL时,如果我想从URL获取一些JSON数据,我会得到一个CAPTCHA页面

我试图从JSON数组中获取数据,但当我从API中请求数据时,我只得到一个CAPTCHA的enpoint,我只需要一些数据,比如openPrice、highPrice、price和lowPrice。但是我只得到一个CAPTCHA表单,而不是JSON数组

var express=require(“express”);
var bodyParser=require(“主体解析器”);
var sql=要求(“mssql”);
var-app=express();
var请求=要求(“请求”);
var useragent=require(“express useragent”);
彭博风险值=`https://www.bloomberg.com/markets2/api/quote/CUR/USDMXN%3ACUR?locale=en/`;
//获取API测试交换
app.get(“/api/exchange”),函数(req,res){
请求({
网址:彭博社,
json:false
},功能(错误、结果、正文){
如果(!err&&resu.statusCode===200){
决议(正文);
}
});
});
我只想带3个数据

{openPrice:19.1159,price:19.1014,low price:19.0585,high price:19.129,}

这是我在本地主机上测试的内容:

  • 那个坏了。它不返回任何数据
  • 那一个有效:
将用户代理标头设置为:

Mozilla/5.0(X11;Linux x86_64)AppleWebKit/537.36(KHTML,像Gecko)Chrome/78.0.3904.97 Safari/537.36”

或者其他被识别为浏览器的用户代理。他们可能会检查http客户端是否是机器人或其他东西-idk bloomberg API

该主题可能对您有用:

curl https://www.bloomberg.com/markets2/api/quote/CUR/USDMXN%3ACUR?locale=en/
curl https://www.bloomberg.com/markets2/api/quote/CUR/USDMXN%3ACUR?locale=en/ -H "User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.97 Safari/537.36