我正在尝试使用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进行编码。