Visualizza post

Questa sezione ti permette di visualizzare tutti i post inviati da questo utente. N.B: puoi vedere solo i post relativi alle aree dove hai l'accesso.


Post - Script

Pagine: [1]
1
Programmazione in rete - web / Re:Web scraping
« il: Novembre 13, 2020, 16:18 »
Ciao a tutti,

mi accodo anch'io a questo thread essendo interessato allo stesso argomento.

Premetto che sono un neofita di Python: lo sto studiando da un paio di mesi abbondanti tra corsi online anche a pagamento e libri di settore e sono interessato ad apprenderlo per impiegarlo profittevolmente nel mio lavoro, quindi specializzandomi nel Data Scientist e nel Machine Learning (anche se, per il momento, questi temi mi sembrano ancora lontani anni luce da dove sono. Ma pian piano ci arriveremo...  :P ).

Detto ciò, sto da qualche tempo lavorando su uno script per fare web scraping con l'impiego combinato di requests e di BeautifolSoup ma nonostante gli sforzi, non riesco a trovare soluzione al mio attuale intoppo. Espongo di seguito il problema.

Il sito "fonte" da cui attingere i dati che  mi interessano ha, ad un certo punto, una struttura di questo tipo (opportunamente alterata in alcune parole per non ricondurre al sito reale) :

<div class="im-mainFeatures">

<ul class="nd-list nd-list--pipe"><li class="nd-list__item im-mainFeatures__price"><div class="im-mainFeatures__title"> Variabile_1</div></li><li class="nd-list__item"><span class="im-mainFeatures__value" >3               

<svg viewBox="0 0 16 16" width="16" height="16" class="nd-icon im-mainFeatures__symbol " ><use class="nd-icon__use" xlink:href="/assets-au/sito-it/images/common/sprite-main-features___80243d0e.svg#planimetry"></use></svg></span><span class="im-mainFeatures__label">locali</span></li><li class="nd-list__item"><span class="im-mainFeatures__value" ><span>&nbsp;</span>100<span class="im-mainFeatures__symbol">m²</span></span><span class="im-mainFeatures__label">Variabile_2</span></li><li class="nd-list__item"><span class="im-mainFeatures__value" >2

<svg viewBox="0 0 16 16" width="16" height="16" class="nd-icon im-mainFeatures__symbol " ><use class="nd-icon__use" xlink:href="/assets-au/sito-it/images/common/sprite-main-features___80243d0e.svg#bathroom"></use></svg></span><span class="im-mainFeatures__label">Viariabile_3</span></li><li class="nd-list__item"><span class="im-mainFeatures__value" data-text="3">3

<svg viewBox="0 0 16 16" width="16" height="16" class="nd-icon im-mainFeatures__symbol " ><use class="nd-icon__use" xlink:href="/assets-au/sito-it/images/common/sprite-main-features___80243d0e.svg#stairs"></use></svg></span><span class="im-mainFeatures__label">Variabile_4</span></li></ul></div>


A me interessa estrapolare solo il dato evidenziato in rosso, solamente quel 2 (si, beh, da questo stralcio di codice, non in generale da tutto il sito :D ). Il problema è che il relativo percorso nei nodi è in comune con altri tag ed il "parametro" (non so se è il termine corretto) im-mainFeatures__value si ripete più volte, impedendomi di raggiungere quello specifico valore.

Il mio script è questo:

X = contenuto.find('span', attrs = {'class':'im-mainFeatures__value'})
Y = X.text
Y = Y.replace(" ","").replace("\n","")
print (Y)


Con questa impostazione, il programma mi manda in output (print) il valore 3, situato alla stringa precedente rispetto a quello di mio interesse, ipotizzo per via di una mera sequenzialità di ricerca che fa fermare il programma al primo risultato. E qui arriviamo al dunque: come faccio ad indirizzare l'estrazione verso il dato di mio interesse e non al primo che incontra?

Spero di essere stato abbastanza chiaro da farmi almeno comprendere :D

Grazie in anticipo per l'aiuto.

P.S.:
Il Lutz è sempre una buona idea.
Ti riferisci a "Imparare Python" di Mark Lutz, quello con il titolo blu e il topo in copertina? Se non sbaglio, l'edizione italiana è ferma alla IV datata 2011, ormai ben 9 anni orsono. Dici che vale ancora la pena o ormai è un pò troppo vecchiotta?

2
Benvenuto e regolamento / Un saluto a tutti
« il: Novembre 13, 2020, 15:40 »
Ciao a tutti, mi chiamo Alessandro e sono un novellino del linguaggio di programmazione Python. E' da un po' di tempo che vi seguo, trovando tra le pagine di questa community tante informazioni utili che mi insegnano a programmare ogni giorno meglio del precedente con il nostro linguaggio preferito.  :ok:

Spero solo di riuscire pian piano a migliorare ed apprendere abbastanza da diventare anch'io una risorsa d'aiuto per gli utenti di questo forum esattamente come tutti voi lo siete stati e lo siete ancora per me.  ;)

A presto leggerci tra queste pagine.

Script  :py:

Pagine: [1]