Aquesta pràctica forma part de l’assignatura Tipologia i cicle de vida de les dades del Màster en Ciència de dades de la Universitat Oberta de Catalunya.
L'objectiu d'aquest treball consisteix en aplicar tècniques de web scraping a la pàgina https://sindicat.net per tal de recopilar informació anual sobre la composició de la borsa de treball del Departament d'Ensenyament i els nomenaments del professorat a Catalunya. Aquest conjunt de dades vol oferir a tots els professors una informació integrada de la borsa que els pugui ajudar a prendre decisions sobre el seu futur professional.
Aquest treball ha sigut realitzat per Victor Boix i Jesús Marí.
Per a la realització de la pràctica s'ha utilitzat Python 3 amb les llibreries requests, re, time, os, pandas i BeatutifulSoup. Els fitxers que formen el codi font són:
- main.py - Mètode principal, inicia el procés de web scraping donat un curs.
- scraper.py - Conté la implementació de la classe WebScraper i els mètodes encarregats de descarregar, recopilar i generar el dataset.
- columnFilter.py - Conté diferents classes que actuen de filtres per a la neteja de dades dels diferents camps del dataset.
El conjunt de dades està format per 6 datasets corresponents a les dades de cada curs escolar entre 2013 i 2019. Aquests datasets es troben a la carpeta data en format CSV i s'anomenen dadesyyYY.csv, on yy és l'any d'inici de curs i YY l'any de finalització (per exemple dades1819.csv conté les dades del curs 2018-2019). A més, el codi també permet capturar totes les dades en un únic dataset anomenat dadesALL.csv que engloba la informació de tots els cursos. Cada dataset conté un registre per a cada professor que opta a un lloc de treball per a una especialitat concreta a un servei territorial. Cada registre conté informació sobre el curs, el número de la borsa que identifica al treballador, l'especialitat demanada i el servei territorial preferent. A més, per als professors que ja han sigut nomenats, es disposa d'informació sobre l'adjudicació: especialitat, jornada, centre, dates d'inici i finalització.
Cada fitxer conté 12 camps descrits a continuació:
- curs (integer). Curs escolar al què correspon el registre seguint el format yyYY (per exemple: 1819).
- sstt (integer). Codi numèric del servei territorial preferent (zona) per al qual s'opta a treballar.
- especialitat (string). Codi de l'especialitat docent sol·licitada pel professor, format per 2 o 3 dígits.
- inicials (string). Inicials del professor. Tres lletres, per exemple CC, N.
- bloc (integer). Indica el bloc de la borsa de què forma part el professor (1 si ha treballat anteriorment al Departament i 2 si no ha treballat mai).
- n_interi (integer). Número d'ordre de tot el professorat a la borsa de treball en funció del temps treballat.
- data_ini (date). Data d'incorporació al centre en format yyyy-mm-dd.
- especialitat_dest (string). Codi de l'especialitat docent per a la qual ha sigut nomenat un professor (2 o 3 dígits).
- codi_centre (integer). Codi de 8 xifres que identifica a cada centre de manera única.
- centre (string). Nom del centre de treball de l'adjudicació.
- tipus_jornada (float). Durada de la jornada de treball adjudicada (1 sencera, 0'5 mitja, 0'33 terç...).
- data_fi (date). Data de finalització del nomenament en format yyyy-mm-dd.
- SUBIRATS, L.; CALVO, M. (2018). Web Scraping. Editorial UOC.
- LAWSON, R. (2015). Web Scraping with Python. Packt Publishing Ltd.