Skip to content

Instantly share code, notes, and snippets.

@freddiefujiwara
Created November 14, 2022 00:21
Show Gist options
  • Save freddiefujiwara/d2273fb780a3de402ed528ab837f9d28 to your computer and use it in GitHub Desktop.
Save freddiefujiwara/d2273fb780a3de402ed528ab837f9d28 to your computer and use it in GitHub Desktop.
Crawl ISTQB Glossary
function crawlISTQBGlossary() {
const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
const sheetLast = sheet.getLastRow();
const sheetValues = sheet.getDataRange().getValues();
const sheetHeaders = sheetValues.shift();
const API_URL = "https://glossary.istqb.org/api/v2/search";
let newData = [];
let finish = false;
let page = 0;
while (!finish) {
let payload = {
term: "",
page: page,
language: 0
};
let options = {
'method': 'post',
'payload': payload
};
const results = JSON.parse(UrlFetchApp.fetch(API_URL, options).getContentText()).results;
results.forEach(data => {
let row = [];
sheetHeaders.forEach((header) => {
row.push(data[header]);
});
newData.push(row);
});
if (results.length == 0) {
finish = true;
}
page++;
Logger.log(page);
}
sheet.getRange(2, 1, sheetLast, sheetHeaders.length).clearContent();
sheet.getRange(2, 1, newData.length, sheetHeaders.length).setValues(newData);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment