Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**
- * Returns information from DM products.
- *
- * @param {A1:A5} urls the url(s).
- * @param {true} headers boolean to return the headers.
- * @return {array} DM information.
- * @customfunction
- */
- function DM_DATA(urls, headers = true) {
- if (!Array.isArray(urls)) {
- urls = [urls]
- }
- urls = urls.flat()
- const requestUrls = urls.filter(u => u !== "").map(u => {
- const id = /[a-zA-Z-]*?([0-9]*)\.html/.exec(u)[1]
- return `https://products.dm.de/product/de/products/gtins/${id}?view=details`
- })
- const results = []
- UrlFetchApp.fetchAll(requestUrls).forEach((response, i) => {
- const data = JSON.parse(response.getContentText())[0]
- const selectedFields = {
- 'Name': data.name,
- 'Price': Number(data.price)
- }
- if (i === 0 && headers) {
- results.push(Object.keys(selectedFields))
- }
- results.push(Object.values(selectedFields))
- })
- return results
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement