import { parse } from "node-html-parser"; const BASE_URL = "https://www.nasa.gov/gallery/human-spaceflight-mission-patches/"; async function getPatchHrefs() { function getGalleryPageHref(page: number) { if (page > 1) { return `${BASE_URL}page/${page}/`; } else { return BASE_URL; } } let patchHrefs: string[] = []; for (let i = 0; i <= 7; i++) { const req = await fetch( "https://www.nasa.gov/gallery/human-spaceflight-mission-patches/page/2/", ); const data = parse(await req.text()); const gallery = data .getElementsByTagName("div") .filter((el) => el.classList.contains("hds-gallery-items")) .shift(); const links = gallery ?.getElementsByTagName("a") .map((el) => el.getAttribute("href")) .filter((el) => el) as string[]; patchHrefs.push.apply(patchHrefs, links); } return patchHrefs; } const allPatches = await getPatchHrefs(); console.log(allPatches);