Sign Up for Free

RunKit +

Try any Node.js package right in your browser

This is a playground to test code. It runs a full Node.js environment and already has all of npm’s 400,000 packages pre-installed, including icsd-scraper with all npm packages installed. Try it out:

var icsdScraper = require("icsd-scraper")

This service is provided by RunKit and is not affiliated with npm, Inc or the package authors.

icsd-scraper v2.1.1

A Node.js module to scrap the icsd site and retrieve details about professors and courses.



Codacy Badge npm version GitHub version License: GPL v3

Simple Description

A Node.js package that scraps the ICSD site and retrieve details about courses and professors. This package is very useful for thesis work or other academic projects.

Prefer Python?

My old fella from university CheatModeOn has made the same module written in python. Check here.



First install the package using npm:

npm install --save icsd-scraper

Then, require the package and use it like so:

const icsdScraper = require('icsd-scraper');

var allProfessors = icsdScraper.getProfessors();
var basicCoursesInfo = icsdScraper.getBasicCourses();
var advancedCoursesInfo = icsdScraper.getAdvancedCourses();

allProfessors.then(function (results) {
  console.log("allProfessors", results);

basicCoursesInfo.then(function (results) {
  console.log("basicCoursesInfo", results);

advancedCoursesInfo.then(function (results) {
  console.log("advancedCoursesInfo", results);

Functions Documentation


Returns all professors as an array of objects with the below details:

  • name
  • academicRank
  • link
  • office
  • tel
  • email
  • website
  • image


Returns all courses as an array of objects with the below details:

  • title
  • code
  • semester
  • ects
  • theoryHours
  • labHours
  • professor
  • link


Returns all courses as an array of objects with the below details:

  • title
  • code
  • semester
  • ects
  • theoryHours
  • labHours
  • professor
  • link
  • courseWebsite
  • contentOutline
  • learningOutcomes
  • prerequisites
  • basicTextbooks
  • additionalReferences
  • teachingMethod
  • grandingMethod
  • languageOfInstruction
  • modeOfDelivery

⚠️Ιmportant: getAdvancedCourses doesn't always work properly due to lack of consistency of ICSD site. So it's better to use the getBasicCourses to retrieve basic course informations and then if you want more, use getAdvancedCourseDetails(url) to see the differences.


Insert as argument the link of the course (from getBasicCourses use the value of the key with the name link): Returns an object with the same details as the getAdvancedCourses.



RunKit is a free, in-browser JavaScript dev environment for prototyping Node.js code, with every npm package installed. Sign up to share your code.
Sign Up for Free