Google Apps Script cUrl POST Request



我正在尝试使用Google Apps Script从https://app.scrapingant.com/的API中提取数据。

文档在这里:https://docs.scrapingant.com/request-response-format#passing-parameters-via-post-method

我得到的cURL请求如下:

curl --request POST 
--url 'https://api.scrapingant.com/v1/general' 
--header 'x-api-key: XXX-XXX' 
--header 'accept: application/json' 
--header 'content-type: application/json' 
--data '{ "url": "https://creditcardgenius.ca/credit-cards/hsbc-world-elite-mastercard"}'

我在Apps脚本中设置了这个函数:


function getCcgRate() {
var root = 'https://api.scrapingant.com/v1/general';
var params = {
'headers': {
'x-api-key': 'XXX-XXX',
'accept': 'application/json',
'content-type': 'application/json'
},
"url" : "https://creditcardgenius.ca/credit-cards/hsbc-world-elite-mastercard",
"muteHttpExceptions": true,
"followRedirects": true,
"validateHttpsCertificates": true
};
var response = UrlFetchApp.fetch(root, params);
var data = response.getContentText();
var json = JSON.parse(data);
Logger.log(json);
}

我得到以下错误:{detail=url参数是必需的。请查看文档:https://docs.scrapingant.com/}

我以前从未使用过GAS,所以弄清楚它现在想要什么有点困难。如有任何帮助,不胜感激。

我相信你的目标是这样的。

  • 你想把下面的curl命令转换成Google Apps Script。

    curl --request POST 
    --url 'https://api.scrapingant.com/v1/general' 
    --header 'x-api-key: XXX-XXX' 
    --header 'accept: application/json' 
    --header 'content-type: application/json' 
    --data '{ "url": "https://creditcardgenius.ca/credit-cards/hsbc-world-elite-mastercard"}'
    

在这种情况下,下面的修改如何?

修改脚本:

function getCcgRate() {
var root = 'https://api.scrapingant.com/v1/general';
var params = {
'headers': {
'x-api-key': 'XXX-XXX',
'accept': 'application/json',
},
"muteHttpExceptions": true,
'payload': JSON.stringify({ "url": "https://creditcardgenius.ca/credit-cards/hsbc-world-elite-mastercard" }),
'contentType': 'application/json',
'method': 'post',
};
var response = UrlFetchApp.fetch(root, params);
var data = response.getContentText();
var json = JSON.parse(data);
Logger.log(json);
}

注意:

  • 修改后的脚本假设curl命令工作正常。请小心。
  • 参考:

  • 获取(url, params)

Scrapingant不支持GET请求的body参数传递

你要做的就是把你的参数编码到你的请求url中(注意url是你发送请求的url,而不是你想抓取的url)。

这个页面解释了如何用encodeURIComponent()函数对你想发送GET请求的url进行编码。

最新更新