Skip to content

Instantly share code, notes, and snippets.

@Hyllesen
Last active January 27, 2020 14:25

Revisions

  1. Hyllesen revised this gist Jan 27, 2020. 2 changed files with 31 additions and 17 deletions.
    31 changes: 31 additions & 0 deletions bonus-dynamicheaders.js
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,31 @@
    const request = require("request-promise");
    const cheerio = require("cheerio");

    async function main() {
    const result = await request.get("http://codingwithstefan.com/table-example");
    const $ = cheerio.load(result);
    const scrapedData = [];
    const tableHeaders = [];
    $("body > table > tbody > tr").each((index, element) => {
    if (index === 0) {
    const ths = $(element).find("th");
    $(ths).each((i, element) => {
    tableHeaders.push(
    $(element)
    .text()
    .toLowerCase()
    );
    });
    return true;
    }
    const tds = $(element).find("td");
    const tableRow = {};
    $(tds).each((i, element) => {
    tableRow[tableHeaders[i]] = $(element).text();
    });
    scrapedData.push(tableRow);
    });
    console.log(scrapedData);
    }

    main();
    17 changes: 0 additions & 17 deletions donescrapingnodejs.js
    Original file line number Diff line number Diff line change
    @@ -1,17 +0,0 @@
    async function main() {
    const result = await request.get("http://codingwithstefan.com/table-example");
    const $ = cheerio.load(result);
    const scrapedData = [];
    $("body > table > tbody > tr").each((index, element) => {
    if (index === 0) return true;
    const tds = $(element).find("td");
    const company = $(tds[0]).text();
    const contact = $(tds[1]).text();
    const country = $(tds[2]).text();
    const tableRow = { company, contact, country };
    scrapedData.push(tableRow);
    });
    console.log(scrapedData);
    }

    main();
  2. Hyllesen revised this gist Jan 27, 2020. 1 changed file with 1 addition and 4 deletions.
    5 changes: 1 addition & 4 deletions donescrapingnodejs.js
    Original file line number Diff line number Diff line change
    @@ -1,6 +1,3 @@
    const request = require("request-promise");
    const cheerio = require("cheerio");

    async function main() {
    const result = await request.get("http://codingwithstefan.com/table-example");
    const $ = cheerio.load(result);
    @@ -17,4 +14,4 @@ async function main() {
    console.log(scrapedData);
    }

    main();
    main();
  3. Hyllesen created this gist Jan 27, 2020.
    20 changes: 20 additions & 0 deletions donescrapingnodejs.js
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,20 @@
    const request = require("request-promise");
    const cheerio = require("cheerio");

    async function main() {
    const result = await request.get("http://codingwithstefan.com/table-example");
    const $ = cheerio.load(result);
    const scrapedData = [];
    $("body > table > tbody > tr").each((index, element) => {
    if (index === 0) return true;
    const tds = $(element).find("td");
    const company = $(tds[0]).text();
    const contact = $(tds[1]).text();
    const country = $(tds[2]).text();
    const tableRow = { company, contact, country };
    scrapedData.push(tableRow);
    });
    console.log(scrapedData);
    }

    main();