leostro/Crawler
Folders and files
| Name | Name | Last commit date | ||
|---|---|---|---|---|
Repository files navigation
1) Come mi sono mosso Ho osservato il DOM della homepage e ho visto che potevo mettere insieme una serie di url che contenevano in pratica risultati ricerca di schede di giochi. Siccome in questo modo non arrivavo a mettere insieme 1000 url ho aggiunto una navigazione per textsearch cercando le lettere dell'alfabeto. Con in mano almeno 1000 url ho lanciato in parallelo delle httprequest per recuperare il DOM Della pagina. Nome, stars e Genere sono facilmente estrabili dal DOM tramite HtmlAgilityPack + xPath. Inizialmente avevo usato Selenium per rintracciare la versione (click sul bottone About + xPath per recuperare la versione). Questo approccio però non consentiva neanche di avvicinarsi ai 1000 metdata/10 min. Allora ho osservato meglio il DOM della pagina e ho visto che la version era presente in alcuni punti. Per la version non mi è sembrato possibile trovare un xPath funzionante, perciò ho usato un aprroccio basato su RegEx, con il quale ho "rimpiazzato" Selenium, migliorando di molto le performances. 2) possible altra strategia - non esplorata in dettaglio Le info da estrarre sono tutte presenti anche all'interno del tag <script>, anche se in quache modo mascherati. Sembra che il json venga come spezzato in diversi array innestati. Sicuramente c'è un modo alternativo (e forse più affidabile) per estrarre i metadati richiesti. 3) Conclusione Il mio script grossomodo trova 1000 set di metadati in circa 10 min. L'unico problema che ho notato è che, tramite l'aprroccio con REGEX, non vengono estratte le versioni mononumero (es: 12, qui: https://play.google.com/store/apps/details?id=com.elepant.free.kids.cooking.games.girls.pizza.baking); in questo caso magari si potrebbe usare Selenium come fallback. Fornico il repository GIT per vedere il modo in cui ho lavorato.