A novembre non ho pubblicato guide, era parecchio che non saltavo un mese. Purtroppo (per il blog) in quel periodo ho dedicato le mie serate ad imparare nuove cose, ora ti racconto.
Ogni anno cerco di partecipare a diversi convegni sul search marketing, sono rare le occasioni utili al confronto con altri professionisti e proprio in queste occasioni ho conosciuto persone geniali dalle quali ho potuto prendere spunti ed idee. Perché parlo di eventi? Perché da qualche anno sento sempre più speech ruotare intorno a Python, ogni anno i case history si moltiplicano: un linguaggio di programmazione dalla sintassi semplice e con il quale è possibile fare cose fantastiche, narrano le leggende.
Oggi sembra che, se non sai usare Python, non sei nessuno. Paolo Dello Vicario fu il primo (per quello che ho visto io) che presentò un caso di analisi dati fatta con Python. Molto interessante, ma sentivo forti barriere all’ingresso nell’imparare a programmare con un linguaggio nuovo.
C’è di buono che sono curioso di natura, ho imparato PHP e spulciato JavaScript per interesse, giusto per capire cosa si potesse fare, mi sono creato dei plugin per questo sito e niente di più. Tuttavia, con Python la faccenda mi sembrava un po più complessa, ma mi sbagliavo. Di recente mi è capitato sott’occhio uno script di Alessio Nittoli che scansiona il box PAA (People Also Ask) nella SERP di Google e mostra graficamente tutte le domande.
Io amo queste cose e non le so fare con Python. Devo imparare! mi sono detto.
All’alba dei 40 anni ho contattato 2 programmatori Python, uno non mi bastava: Luca Zomparelli (profilo senior) ed Enrico Cerri (profilo junior). In questo periodo sto dedicando dalle 4 alle 6 ore a settimana a lezioni private Python, era tempo che non mi appassionavo così tanto a qualcosa di nuovo.
Ho comprato un Raspberry Pi 4 (con un case da persona seria) per fare tutti gli esperimenti del caso, è una scheda ottima per lavorare con Python e dato il basso consumo può restare accesa e funzionante 24/24h.
Le lezioni non si sovrappongono mai pur avendo due istruttori: con Luca vediamo la teoria, la sintassi e correggiamo gli esercizi che mi invento. Con Enrico invece facciamo pratica e mettiamo online i miei esercizi usando Django e tutti gli strumenti necessari a portare Python nel mondo web.
Non diventerò un developer, questo è abbastanza chiaro, ma potrò togliermi alcuni sfizi programmandomi piccoli tool ed imparerò cose nuove.
Fare lezioni senza poi mettere in pratica rende poco, soprattutto nella programmazione. Voglio massimizzare queste ore dedicate all’apprendimento quindi mi sto dando da fare facendo esercizi. Avevo già in mente diverse idee di applicazioni che mi sarebbero tornate utili nel lavoro di tutti i giorni, così ho iniziato ad esercitarmi sviluppando queste idee.
Twitter auto poster
Dopo la prima lezione ho sviluppato un tool che, dandogli un dominio, esegue questi step:
- Cerca e scarica la sitemap.xml ed estrae gli URL dei singoli post.
- Esclude dalla lista gli URL che voglio escludere.
- Si collega a Twitter ed inizia a postare in automatico un articolo ogni 2 ore, estraendo il tag title dall’URL ed usandolo come testo del tweet.
- Quando finisce di condividere tutta la lista, lo script scarica di nuovo la sitemap e riparte da capo con la lista aggiornata.
- Nel caso lo script dovesse interrompersi oppure il Raspberry dovesse riavviarsi, la scaletta è stata salvata in un file csv quindi il tool riprende esattamente da dove aveva lasciato.
Figo no? Ho creato il mio social media manager dopo una lezione di Python, mi ci sono volute 30 ore e parecchio sonno perso ma cazzo ero entusiasta come non lo ero da tempo.
Piano piano inizio a comprendere le enormi potenzialità di questo linguaggio e come poterlo usare per risparmiare tempo.
Pensavo di rendere pubblico questo strumento, pubblicandolo online, tuttavia credo che l’interesse sia molto basso e finirei per usarlo solo io. Nel caso qualcuno fosse interessato parliamone.
Keyword clusteryzer
Dopo qualche lezione ho provato a sviluppare una seconda idea che avevo in testa, ovvero un tool in grado di aiutarmi a clusterizzare lunghe liste di parole chiave usando come riferimento la distribuzione dei singoli termini (hai presente URLsmatch?). Per farla breve lo script legge una lista di parole chiave e associa a ciascuna la categoria di appartenenza, così da poter poi analizzare i dati aggregati.
Come dico sempre, la prima attività da eseguire in una strategia SEO è l’analisi delle parole chiave. Questo processo di data-mining e analisi è molto lungo, catalogare grandi liste di parole può richiedermi decine di ore di lavoro. Perché quindi non sfruttare Python ed il mio Raspberry per automatizzare questo task?
Detto e (svariate ore dopo) fatto! Ora ho il mio clusterizzatore personale a tre livelli.
Di seguito l’export dello script in file csv:
Questo script mi ha catalogato una lista di 50.000 parole chiave in 31 minuti. Oltre ad essere molto più veloce di me, nel frattempo io posso fare altro. Ma non potevo iniziare prima a studiare Python?
Entro fine settimana questo strumento andrà online e sarà disponibile a tutti gratuitamente.
Super Google Suggest
La terza idea che ho sviluppato sfrutta Google Suggest ed è in pratica un processo di data mining per generare preziose long tail. Avevo già un tool che usa Google Suggest, ma con Python si può fare molto di più che ricevere giusto qualche centinaio di termini… Python si presta allo scripting, basta interrogare Google ciclicamente con sequenze specifiche di caratteri per ottenere liste praticamente infinite di parole chiave correlate e a coda lunga. Come? Vediamo alcune idee:
- Metto in loop le suggerite, ovvero: cerco le suggerite di xyz, poi cerco a loro volta le suggerite delle suggerite, e così via ciclicamente. Con 3 o 4 loop si possono estrarre facilmente oltre 500 termini in pochi secondi.
- Appendo ciclicamente una lettera dell’alfabeto alla mia query, oppure meglio, appendo due lettere per ottenere molte long tail, es:
- Luxury hotel aa
- Luxury hotel ab
- Luxury hotel ac
- Luxury hotel ad
- …
- Antepongo ciclicamente due lettere dell’alfabeto alla mia query, es:
- aa Luxury hotel
- ab Luxury hotel
- ac Luxury hotel
- ad Luxury hotel
- …
- Concatenando i tre loop appena mostrati è facile estrarre decine di migliaia di long-tail, ma ci vogliono diverse ore.
Insomma, lavorando con un pochino di ingegno sono riuscito ad ottenere una lista con 35.000 termini long tail correlati a “Luxury hotel”. Ah, il tutto mentre dormivo.
Questo tool andrà online prossimamente, devo prima riuscire a spostare le chiamate lato client per evitare ban del server da parte di Google.
Python mi torna utile nel lavoro quotidiano, posso automatizzare semplici task che sono time consuming. Con Python ci sono librerie per svolgere migliaia di compiti e si importano in pochi secondi. Uno dei campi applicativi dove Python viene maggiormente sfruttato è l’analisi dei dati ed il Machine Learning, materia di cui non posso ancora parlare non avendone esperienza. Spero in futuro di riuscire a capire e forse sviluppare qualche piccola funzione di ML.
SEO e Python?
Come vedi con Python è possibile fare molte cose, dove ci sono dati, dove ci sono API, Python è a suo agio. Non dico che per un SEO sia strettamente necessario conoscere Python, ne avevo parlato nell’articolo sulle competenze di un SEO, ma sono convinto che sapere è meglio che non sapere, e questo linguaggio può rivelarsi utile e pratico nel lavoro di tutti i giorni.
Un SEO lavora con molti dati, ma i dati vanno analizzati ed interpretati altrimenti sono inutili. Il dato oggi non manca, siamo sommersi da dati, se mai quello che manca è il tempo, quindi uno strumento che analizza i dati e ti fa risparmiare tempo a mio parere è interessante, non trovi?
Non sai da dove partire? Il web è pieno di esempi, devi solo decidere quali dati ti interessano ;)
- Puoi automatizzare l’archiviazione dei dati di Google Search Console attraverso le API, così da non avere il vincolo dei 16 mesi di storicità.
- Puoi usare le API di Google Ads per scaricare i dati o automatizzare regole e comportamenti.
- Puoi usare le API di WordPress. Ad esempio se hai un database puoi trasformarlo in sito WordPress facendo POST di ogni singolo entry in pochi istanti.
- Puoi interrogare Wikipedia attraverso le sue API.
- …
Con Python le potenzialità ed i possibili sviluppi sono praticamente infiniti, il limite è la fantasia.
Pimp my Raspberry
Alla fine sono un NERD smanettone ed è facile che mi faccia prendere la mano con i gadget inutili… Con questo dissipatore attivo la temperatura del Raspberry non supera mai i 60° nemmeno sotto sforzo costante. Da vedere fa sicuramente il suo porco effetto.
C’è da dire che il Raspberry Pi 4 non ha per forza bisogno di un dissipatore attivo. Anche con un dissipatore passivo decente e montato correttamente il RB non rischia di andare in throttling. Il throttling è quando la temperatura della CPU è così alta che deve rallentare la frequenza di clock, e questo capita superati gli 80° su questa specifica scheda.
Commenti |10
Lascia un commentoBellissimo articolo.
Apprezzo la passione che traspare nell’imparare.
Grazie Marcello, e io apprezzo molto il tuo commento ;)
Ti seguo sempre con estremo interesse :) Quasi quasi inizio anche io a smanettare con Python e Raspberry, vengo anche io da una programmazione PHP.
Grazie Michele, mi fa molto piacere leggere il tuo commento.
Se conosci PHP, Pyhton appare più semplice almeno nella sintassi. Non mi sono più capitati script che non vanno per un ; dimenticato ;)
Ciao Giovanni,
mi ha fatto molto piacere tu abbia trovato utile il mio piccolo script! Sono da sempre un tuo lettore assiduo (ho imparato tantissime cose leggendoti, come ti raccontavo a Bologna durante la cena di AST). Molti si stanno buttando su Python perchè, per come la vedo io, è un linguaggio che si presta a parecchi usi: automazione, analisi dei dati e anche sviluppo web.
Nonostante sia possibile fare tutte queste belle cose anche in altri linguaggi (prendi per esempio puppeteer in Node o webdriverJS), la cosa che mi piace moltissimo è la sintassi estremamente pulita di Python, oltre ovviamente alla community e alla facilità di gestione dei progetti (virtualenv e derivati).
Grazie ancora per aver condiviso il tuo tempo e la tua esperienza in questo strepitoso articolo.
Ci vediamo presto! :)
Ciao Alessio, grazie che sei passato da qui :D
Concordo al 100%, la sintassi semplice di Python aiuta un sacco, soprattutto i niubbi come me. Nello sviluppare gli esempi descritti ho dovuto fare parecchi tentativi, online ho trovato forse meno esempi rispetto a PHP, ma anche con meno esempi sono riuscito a risolvere le varie problematiche in molto meno tempo rispetto a quando le facevo in PHP. Questa cosa è grandiosa, programmare già è complicato, se poi la sintassi è ostica non aiuta.
Ci vediamo al SMC così mi dai qualche dritta!
Ciao
non ci crederai ma sto facendo la tua stessa cosa, imparare python per migliorare, analizzare e mettermi avanti per il futuro sulla AI.
Io ho fatto un programma che monitora i miei siti web e vede se sono Up.
Ciao Fabio! Mi attira molto il discorso ML, ma è troppo presto per le mie competenze. Spero di arrivarci prima o poi :)
Grande che hai fatto anche tu uno strumento utile!
Grandissimo Giovanni,
ricordo che parlavamo di queste cose al SMXL e mi sembravi ancora poco convinto, passato circa un mese ti sei buttato a capofitto e fai già un botto di roba.. next step, raggiungere i livelli di automazione degli script di
Paul Shapiro, Hamlet Batista e JR Oakes! :)
Ciao Gianluca, grazie che sei passato da qui e del commento :D
Si mi sono messo sotto per cercare di capire come Phyton mi possa aiutare, ma serve taaaanto tempo per imparare!
Grazie per i nomi che hai lasciato, approfondirò sicuramente. Per ora devo ancora fare esperienza su librerie base come Pandas, kmeans, NLTK e compagnia bella. Mi pare di aver capito siano le librerie più orientate a quello che mi interessa fare.
Quasi quasi mi prendo un anno sabbatico per studiare Python :)