- Le prime tre pagine del Portale del Reclutamento
- Seguire la paginazione del Portale del Reclutamento
- Scraping sinché la pagina è "scrollabile"
La pagina di parenza è:
https://www.inpa.gov.it/bandi-e-avvisi/?text=&categoriaId=ced3de00dd504237a8ae®ioneId=&status=OPEN&settoreId=&periodo=&ral=&page_num=0
È un sito in cui le pagine hanno un URL numerico associat, page_num=0
per la prima, page_num=1
, per la seconda, ecc.
È possibile allora dire a web-scraper di lavorare sulle prime 4 pagine, impostando nell'URL di partenza [0-3]
, ovvero
https://www.inpa.gov.it/bandi-e-avvisi/?text=&categoriaId=ced3de00dd504237a8ae®ioneId=&status=OPEN&settoreId=&periodo=&ral=&page_num=[0-3]
Questa una sitemap per testare la cosa, da copiare, incollare e lanciare
{"_id":"INPA_pagine","startUrl":["https://www.inpa.gov.it/bandi-e-avvisi/?text=&categoriaId=ced3de00dd504237a8ae®ioneId=&status=OPEN&settoreId=&periodo=&ral=&page_num=[0-3]"],"selectors":[{"id":"blocco","multiple":true,"parentSelectors":["_root"],"selector":"div.p-3.mb-3","type":"SelectorElement"},{"id":"titolo","multiple":false,"parentSelectors":["blocco"],"regex":"","selector":"a","type":"SelectorText"},{"extractAttribute":"href","id":"URL","multiple":false,"parentSelectors":["blocco"],"selector":"a","type":"SelectorElementAttribute"},{"id":"area_geo","multiple":false,"parentSelectors":["blocco"],"regex":"","selector":"p:contains(\"Area geo\")","type":"SelectorText"},{"id":"titolo_due","multiple":false,"parentSelectors":["blocco"],"regex":"","selector":"a","type":"SelectorText"}]}
A fondo pagina di inPA, c'è la freccina destra, per andare a pagina successiva.
Su Web Scraper esiste il selector, dedicato alla paginazione. Quindi bisogna intercettare la ">" e usare questo selector per fare click e sfogliare le pagine, sinché ce ne è una.
Se si guarda l'HTML relativo alla "freccia" a destra, si vede che è un oggetto <i>
associato alla classe fa-angle-right
, che come CSS Selector si definisce come i.fa-angle-right
Questa la sitemap che i può importare, per eseguire la navigazione paginata, attraverso il tasto ">":
{"_id":"INPA","startUrl":["https://www.inpa.gov.it/bandi-e-avvisi/?text=&categoriaId=ced3de00dd504237a8ae®ioneId=&status=OPEN&settoreId=&periodo=&ral=&page_num=0"],"selectors":[{"id":"pagination","parentSelectors":["_root","pagination"],"paginationType":"auto","type":"SelectorPagination","selector":"i.fa-angle-right"},{"id":"titolo","parentSelectors":["blocco"],"type":"SelectorText","selector":"p.h5","multiple":false,"regex":""},{"id":"area","parentSelectors":["blocco"],"type":"SelectorText","selector":"p.mb-2:contains(\"Area\")","multiple":false,"regex":""},{"id":"blocco","parentSelectors":["_root","pagination"],"type":"SelectorElement","selector":"div.p-3.mb-3","multiple":true},{"id":"dettaglio","parentSelectors":["blocco"],"type":"SelectorLink","selector":"a","multiple":false,"linkType":"linkFromHref"},{"id":"numero_posti","parentSelectors":["dettaglio"],"type":"SelectorText","selector":"p.mb-2:contains(\"Numero\") + p","multiple":false,"regex":""},{"id":"pagina","parentSelectors":["_root","pagination"],"type":"SelectorText","selector":"span.page-link.current","multiple":false,"regex":""}]}
In questo sito, non c'è la pagina, ma un'unica pagina da "scrollare". Bisogna allora trovare il modo di dire a web scraper di scrollarla, sinché ci sono elementi da estrarre.
Web Scraper mette a disposizione il selector "Element scroll down", che "scrollerà" la pagina sinché una condizione è verificata.
Qui si può impostare di farlo, finché trova attivo un elemento della lista, che si può selezionare qui con div.bordered-list-item
, che seleziona tutti gli elementi <div>
che hanno la classe bordered-list-item
.
La sitemap è questa:
{"_id":"f6s","startUrl":["https://www.f6s.com/programs?regions%5B%5D=1&sort=open"],"selectors":[{"id":"item-wrapper","parentSelectors":["_root"],"type":"SelectorElementScroll","selector":"div.bordered-list-item","multiple":true,"delay":2000,"elementLimit":500},{"id":"titolo","parentSelectors":["item-wrapper"],"type":"SelectorText","selector":"a.action","multiple":false,"regex":""},{"id":"luogo","parentSelectors":["item-wrapper"],"type":"SelectorText","selector":".subtitle span","multiple":false,"regex":""},{"id":"apply","parentSelectors":["item-wrapper"],"type":"SelectorElementAttribute","selector":"a[href*=\"apply\"]","multiple":false,"extractAttribute":"href"},{"id":"by_date","parentSelectors":["item-wrapper"],"type":"SelectorText","selector":"a[href*=\"apply\"]","multiple":false,"regex":""},{"id":"info","parentSelectors":["item-wrapper"],"type":"SelectorElementAttribute","selector":"a.action","multiple":false,"extractAttribute":"href"}]}