Skip to content

Web scraping

epou edited this page Nov 11, 2019 · 5 revisions

Descripció

Aquest projecte és el resultat de la primera pràctica de l'assignatura "Tipologia i cicle de vida de les dades" del master de ciència de dades de la UOC (Universitat Oberta de Catalunya). S'han aplicat tècniques de web scraping per a extreure informació de la web https://www.azlyrics.com i generar-ne un dataset resultat d'un petició. Cal dir que el dataset resultant que es troba disponible al repositori és el resultat d'aplicar una cerca concreta, concretament el nom de l'artista "Metallica". Amb això vull dir que el codi esta desenvolupat per a ser una eina que doni llibertat a l'usuari per fer les consultes que vulgui i obtenir el resultats corresponents i en cap cas el codi s'ajusta unicament als resultats de "Metallica".

Membres de l'equip

Aquest projecte ha estat dut a terme de forma individual per l'Enric Pou.

Fitxers

Codi del projecte

  • main.py: Punt d'entrada per interectuar via CLI amb el codi.
  • src/models.py: Models usats per als outputs: Album, Artist, Song
  • src/outputer.py: Funcions per a generar outputs. Ara mateix només existeix la funció per generar un CSV.
  • src/searcher.py: Funcions per a facilitar la busqueda segons el tipus.
  • src/utils.py: Funcions compartides útils (aqui s'inclou la funció per a netejar les lletres de les cancçons).
  • src/scraper/base.py: Conté les classes abstractes per a generar scrapers de la web azlyrics.
  • src/scraper/exceptions.py: Conté la col·lecció d'exepcions pels scrapers.
  • src/scraper/plain.py: Conté les classes per fer scraping de les pagines "planes" que retorna azlyrics.
  • src/scraper/requester.py: Conté la clase Requester amb mètodes per fer requests amb batch i amb pauses adients per evitar esser bloquejat.
  • src/scraper/search.py: Conté les clases que permeten scrapejar els resultats de les cerques segons la tipologia:

Altres

  • csv/metallica_lyrics.csv: Conté el csv resultant de buscar l'artista Metallica.
  • doc/PRAC1_WebScraping_PouEnric.pdf: PDF amb les respostes.
Clone this wiki locally