From cdb70eed9bd4271fbd3e56622ef771c113afdf80 Mon Sep 17 00:00:00 2001 From: Clarence Chan Date: Wed, 13 Sep 2023 11:17:30 -0400 Subject: [PATCH] decode HTML entities in scrape.js --- package-lock.json | 17 +++++++++++++++++ package.json | 1 + scrape.js | 8 ++++---- 3 files changed, 22 insertions(+), 4 deletions(-) diff --git a/package-lock.json b/package-lock.json index 8b745565..1f613f1a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,6 +9,7 @@ "version": "1.0.0", "license": "ISC", "devDependencies": { + "html-entities": "^2.4.0", "node-html-parser": "^6.1.9" } }, @@ -122,6 +123,22 @@ "he": "bin/he" } }, + "node_modules/html-entities": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.4.0.tgz", + "integrity": "sha512-igBTJcNNNhvZFRtm8uA6xMY6xYleeDwn3PeBCkDz7tHttv4F2hsDI2aPgNERWzvRcNYHNT3ymRaQzllmXj4YsQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/mdevils" + }, + { + "type": "patreon", + "url": "https://patreon.com/mdevils" + } + ] + }, "node_modules/node-html-parser": { "version": "6.1.9", "resolved": "https://registry.npmjs.org/node-html-parser/-/node-html-parser-6.1.9.tgz", diff --git a/package.json b/package.json index 86c6d885..da88e134 100644 --- a/package.json +++ b/package.json @@ -9,6 +9,7 @@ "author": "Clarence Chan", "license": "ISC", "devDependencies": { + "html-entities": "^2.4.0", "node-html-parser": "^6.1.9" }, "type": "module" diff --git a/scrape.js b/scrape.js index f08af855..759a3458 100644 --- a/scrape.js +++ b/scrape.js @@ -1,4 +1,5 @@ import { parse } from "node-html-parser"; +import { decode } from "html-entities"; async function searchEvents() { let url = `https://www.tapology.com/search?term=ufc&commit=Submit&model%5Bevents%5D=eventsSearch`; @@ -37,7 +38,7 @@ async function getDetails(event) { return date; } - const { name, link: url } = event; + let { name, link: url } = event; try { const response = await fetch(url); const text = await response.text(); @@ -63,9 +64,11 @@ async function getDetails(event) { let innerText = li.innerText.split("\n"); let fight = innerText[2] + " vs. " + innerText[4] + " (" + innerText[7] + ")"; + fight = decode(fight); fights.push(fight); } + [name, venue, location] = [decode(name), decode(venue), decode(location)]; return { name, link: url, date, venue, location, fights }; } catch (error) { console.error(error); @@ -74,7 +77,6 @@ async function getDetails(event) { async function getDetailedEvents() { let events = []; - try { events = await searchEvents(); events = events.map((event) => getDetails(event)); @@ -84,5 +86,3 @@ async function getDetailedEvents() { console.error(error); } } - -getDetailedEvents();