You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

29 lines
770 B
JavaScript

"use strict";
const cheerio = require("cheerio");
const url = require("url");
const assureResponse = require("../../shared/assure-response");
module.exports = function findCategories({ session }) {
return async function ({ createItem }) {
let response = await session.get("https://www.st.com/content/st_com/en.html");
assureResponse(response);
let $ = cheerio.load(response.body);
let links = $("#Top_Menu_Products :is(a.st-nav__blockmenu-title, a.st-nav__blockmenu-link)")
.toArray()
.map((element) => $(element).attr("href"))
.map((relativeURL) => url.resolve("https://www.st.com/", relativeURL));
for (let link of links) {
createItem({
id: `st:category:${link}`,
tags: [ "st:category" ],
data: { url: link }
});
}
};
};