Come creare un crawler personalizzato utilizzando Colab e advertools

Pubblicato: 2022-05-25

In questo video parleremo di come creare il nostro crawler personalizzato utilizzando Google Colab, Advertools e alcune altre librerie Python. Prima di essere spaventato o agitato, non farlo. Fai un respiro profondo. Andrà tutto bene. Non proclamo nemmeno di essere un programmatore, ma quello in cui sono abbastanza bravo è copiare e incollare. So che puoi usare quel pulsante Ctrl+C tanto quanto me. Diamo un'occhiata a come possiamo creare il nostro crawler SEO personalizzato e come possiamo metterlo in funzione per aiutarci a risolvere alcuni problemi unici.

Risorse

  • Accedi a Colab qui.
  • Scopri di più su Adverttools qui.

Trascrizione video:

Diamo un'occhiata a come possiamo creare un crawler personalizzato utilizzando Google Colab, oltre a Advertools, libreria Python.

Che cos'è un SEO Crawler (Spider)?

I crawler sono strumenti in grado di eseguire la scansione delle pagine di un sito Web proprio come farebbe un motore di ricerca e ci aiutano a ottenere preziose informazioni SEO. Ci aiuta a vedere il sito web, il modo in cui Google, Bing o gli altri motori di ricerca vedrebbero il nostro sito. Ci sono strumenti che fanno questo. Ci sono una serie di strumenti là fuori che fanno questo, il più popolare è probabilmente Screaming Frog SEO Spider, ed è uno strumento che amiamo e usiamo tutto il tempo, ma a volte abbiamo bisogno di una soluzione personalizzata.

Perché dovresti creare il tuo crawler?

La maggior parte dei crawler "pronti all'uso" fa cose straordinarie, ma a volte hai una domanda specifica a cui è necessario rispondere e puoi creare un crawler personalizzato per controllare tutti gli output. Ottieni solo i dati che desideri o di cui hai bisogno. In questo modo non è necessario essere vincolati dalla configurazione di uno strumento, ma è possibile eseguire una rapida scansione di un sito Web o estrarre solo un'informazione o estrarre un sacco di informazioni e organizzarle in un modo diverso, utilizzando Colab e Pitone.

Che cos'è Adverttools?

Advertools è una libreria Python che ti permette di fare molte cose. Puoi eseguire la scansione di siti Web, generare parole chiave per le tue campagne di marketing sui motori di ricerca, creare annunci di testo, analizzare SERP, ottenere informazioni dettagliate sui post sui social media e fare molto di più. È una libreria estremamente flessibile. Fa molte cose interessanti ed è abbastanza semplice da usare.

Non mi definirei un programmatore. Direi solo che sono decente nel copiare e incollare. Anche se non sono un programmatore Python approfondito, sono stato in grado di ottenere molti vantaggi dall'utilizzo di uno strumento come Advertools.

Cosa faremo

Questo è ciò che faremo in questo video.

  1. Crea un nuovo file Colab e installa Adverttools
  2. Crea un crawler personalizzato utilizzando advertools
  3. Scansione e analisi del sito Web e dei dati
  4. Visualizza alcuni di questi risultati usando un'altra libreria Python chiamata Plotly
  5. Esporta i dati

Passaggio 1: crea un file Colab e installa Adverttools

Google Colab è uno strumento che ti permetterà di fare una serie di cose interessanti. Ti consente di eseguire codice all'interno delle celle per creare tabelle, creare i tuoi programmi, fare cose personalizzate, qualsiasi cosa, dall'apprendimento automatico alla SEO e altro ancora. Se non l'hai mai usato prima, è gratuito e ti consente di sfruttare gratuitamente la potenza di calcolo di Google. È molto bello, quindi ti consiglio vivamente di dare un'occhiata.

Se non stai già utilizzando CoLab, qui ci sono molte ottime risorse. Una delle cose che devi fare per usare una libreria che è al di fuori di Python, è l'installazione naturale. Devi installare quel programma. La maggior parte delle volte usi una funzione chiamata PIP e poi inserirai quella nuova libreria. È un processo abbastanza semplice da usare.

Una delle cose che fanno tutti questi ragazzi, che creano questi programmi, è che ti mostrano esattamente come configurarlo all'interno dei loro documenti. Quindi leggi sempre questi documenti e ti permetterà di capire: "Come faccio a importare questi strumenti e far funzionare questi strumenti per me stesso?"

Per installare Advertools, utilizzeremo questa riga di codice proprio qui:

!pip install advertools

Dopo aver inserito il codice qui nel blocco di celle in CoLab, vai avanti e premi il pulsante di riproduzione. Eseguirà questo blocco di codice. Dovresti vedere qualcosa del genere, dove sta installando il codice e l'intero pacchetto qui in modo che ora possiamo usare questa libreria per costruire il nostro crawler. Una volta che vedi il segno di spunta verde, sai che è fatto.

Passaggio 2: crea un crawler personalizzato utilizzando Adverttools

Successivamente, vorremo eseguire una nuova riga di codice.

import advertools as adv
from advertools import crawl
import pandas as pd
 

Puoi andare avanti e premere il pulsante del codice qui e popolerà questo nuovo. Importeremo alcune parti specifiche della libreria Advertools. Stiamo importando advertools, stiamo importando il metodo di scansione. Stiamo anche importando qualcosa chiamato panda. Per quelli di voi che non hanno familiarità con Python, i panda ci consentono di lavorare con i nostri dati all'interno di frame di dati, fondamentalmente creando tabelle all'interno di Python.

Dopo aver impostato tutto questo, vai avanti ed esegui di nuovo il tuo codice. Questo importerà tutte queste informazioni. Se stiamo costruendo una scansione, noterai qui, che si tratta di come possiamo farlo, di come possiamo importare queste scansioni. Ci sono alcuni approcci; puoi importare Advertools come abbiamo fatto noi ed eseguire questa riga di comando, che farà quello che stiamo facendo.

Mi piace rendere Colab un po' più facile da usare nel caso in cui qualcuno del mio team voglia sfruttarlo. Faremo qualcosa di un po' diverso da quello che mostrano qui. Ma se segui questo approccio, lo farai bene e funzionerà ugualmente.

site = "https://simplifiedsearch.net/" #@param {type:"string"}

crawl(site, 'simp.jl' , follow_links= True )
crawl_df = pd.read_json( 'simp.jl' , lines= True )
crawl_df.head()
 

Quello che faremo è questa riga di codice. La prima cosa che stiamo facendo è definire una variabile e la variabile sarà il sito Web di cui vogliamo eseguire la scansione. Usando questa stringa di tipo parametro, mi dà una casella qui, che quindi mi consente di digitare qui, quale sito Web voglio scansionare. Posso mettere il mio sito web qui. Posso inserire qualsiasi sito Web qui e imposterà quella variabile per me. In questo modo non devo digitarlo qui. Posso semplicemente digitarlo in un modulo e qualcuno che non è così a suo agio nel fare clic all'interno della casella del cellulare potrebbe semplicemente andare avanti qui e digitare un lato.

In questo caso, utilizzeremo il nostro sito di ricerca semplificato, solo perché lo useremmo sempre. Andremo avanti e incollarlo qui. Subito sotto stiamo seguendo esattamente le stesse regole che stavano impostando qui. Stiamo usando Advertools.crawl e quindi stiamo usando il sito come nostra variabile. Abbiamo un file di output. Quindi vogliamo che segua i collegamenti all'interno del sito Web.

Eseguiamo anche il passaggio successivo, in cui impostiamo il frame di dati di scansione e gli diciamo di aprire il nostro file di output perché verrà visualizzato in JSON. I panda leggeranno il JSON e creeranno un frame di dati per noi. Alla fine, ci sto dicendo solo di mostrare la testa di questo frame di dati, per assicurarci che tutto funzioni come previsto. Dopo aver seguito questo passaggio ed eseguito questa cella, eseguiremo la scansione del sito Web e verrà eseguito un dump dei dati di seguito e saremo in grado di vedere tutte le diverse funzioni all'interno di questa scansione.

Andrò avanti e gestirò questa cella. Potrebbero volerci alcuni minuti solo perché sta eseguendo una scansione dell'intero sito web. Una volta terminato, parleremo di come sfruttare i dati di scansione per estrarre informazioni specifiche.

Passaggio 3: scansiona e analizza il sito Web e i dati

Ora il sito è stato scansionato e puoi vedere che ho un elenco di URL, titoli, meta descrizioni, punto di vista, set di caratteri, H1, H2 e H3. Tutte queste informazioni vengono inserite in questo frame. Se vuoi vederlo un po 'più pulito, puoi premere questo pulsante magico proprio qui e Google trasferirà questi dati qui in un frame di dati un po' più semplice con cui lavorare. Ho un numero totale di colonne qui di 266. Ci sono molte colonne con cui posso lavorare.

Potresti chiederti cosa c'è in tutte queste colonne. Possiamo tornare qui agli advertools e puoi vedere tutti i diversi elementi. C'è un bel po' di dati di esportazione che possiamo guardare e raccogliere molte informazioni interessanti.

Se vogliamo vedere un elenco di tutte le diverse colonne che abbiamo a disposizione, possiamo eseguire questo codice:

columns = list (crawl_df)
columns
 

Dobbiamo prendere prima le colonne e creare un elenco da esse. Useremo l'elenco di codici e quindi metteremo tra parentesi e all'interno del loro crawl_DF, che è il nome del nostro frame di dati, e chiameremo le nuove colonne dell'elenco. Qui abbiamo le colonne, eseguiamo quella cella e puoi vedere tutte queste diverse colonne possibili. È un bel po' di informazioni, come puoi vedere, sta cercando un sacco di informazioni.

E se volessi vedere solo una parte di queste informazioni? E se volessi solo ottenere tutti i titoli o tutte le meta descrizioni o alcune delle informazioni sui tag H, o forse volessi vedere tutte le pagine e il tipo di markup schema.org che potresti avere su di esse. È qui che è utile avere qualcosa come Advertools.

Supponiamo di voler esaminare i tipi JSON-LD nelle nostre pagine.

json_df = crawl_df[[ 'url' , 'jsonld_@type' ]]
json_df
 

Possiamo iniziare con un nuovo codice. Andiamo avanti e creiamo un nuovo frame di dati chiamato JSON-DF. Vogliamo ottenere alcune informazioni dal nostro frame di dati originale. La prima cosa che vorremo fare, lasciami andare un po' quaggiù per rendere più facile la scansione di tutti, _DF. Useremo una parentesi e un'altra parentesi.

La prima cosa che vogliamo estrarre è l'URL. Sappiamo che l'URL è importante perché abbiamo bisogno di conoscere tutte le pagine del nostro sito, tutti gli URL. La prossima cosa che vogliamo fare è trovare il tipo JSON. Possiamo tornare a questo elenco e possiamo andare al tipo JSON, copiarlo e dire, voglio anche conoscere il tipo JSON. Andrò avanti e manterrò questo coerente, in questo modo seguiamo le migliori pratiche. Cosa facciamo in questa piccola riga qui? Abbiamo detto "crea un nuovo frame di dati" e utilizza i dati dal nostro database originale, dal nostro frame di dati originale e recupera solo gli URL e i tipi JSON-LD.

Se eseguo questo, creerà un nuovo frame di dati con solo quelle informazioni. Per vedere questi dati, posso semplicemente andare avanti, inserire JSON_DF, fare una nuova cella e premere invio. Mi dà un elenco di tutte le mie pagine e il tipo di markup associato a quelle pagine specifiche. Questo può essere molto utile se vuoi cercare rapidamente e trovare tutti i JSON sul tuo sito Web, quali tipi hai e quale markup hai.

Inoltre, hai delle pagine a cui manca il markup? Puoi identificarli rapidamente. Abbiamo questi nuovi dati in cui abbiamo tutti i nostri URL e tutti i nostri tipi JSON-LD che sappiamo esistono su quella pagina.

Passaggio 4: visualizzare i risultati

Diciamo che vogliamo creare un rapido rapporto o grafico da mostrare a un cliente o qualcun altro, o la quantità di informazioni e dati che abbiamo aggiunto a questo sito per loro e per i diversi tipi di esso.

La prima cosa che devo fare è contare tutti i diversi tipi di markup che sono stati aggiunti e quindi posso visualizzarli. Iniziamo contando questo e creando un nuovo frame di dati. Ho già creato questo codice e ti guiderò attraverso di esso:

json_counts = json_df[ 'jsonld_@type' ].value_counts()
json_counts = json_counts.reset_index()
json_counts

Si chiama JSON conteggi. Questo è un nuovo frame di dati. Stiamo prelevando i dati dalla colonna JSON-LD proprio qui. Stiamo facendo contare i valori univoci che si trovano in questa colonna. Quando eseguo questo codice e poi gli dico di emetterlo, vedrai che abbiamo tutte queste informazioni contate.

Quello che sta facendo è che mi sta dando questo errore perché sta trovando alcuni zeri o alcuni NAS nell'elenco. Va bene perché vedrai tra un secondo che abbiamo queste informazioni qui. Ecco tutti i diversi tipi di markup ed è stato tutto preparato per noi.

Stai anche notando che non sembra proprio un frame di dati come è qui. Dobbiamo reindicizzare questo frame di dati, o questa variabile, in un frame di dati affinché funzioni correttamente. Andremo avanti e forniremo il nostro frame di dati ed eseguiremo questo codice:

json_counts = json_counts.reset_index()

 

Quando lo eseguiamo, vedrai che abbiamo un frame di dati. Abbiamo l'indice, che è il termine. Quindi abbiamo il tipo JSON-LD e il conteggio di quello. Non abbiamo ancora un grafico. Abbiamo ancora solo un altro frame di dati. Cosa dobbiamo fare per trasformare questo data frame in una visualizzazione o in un grafico? Useremo qualcosa chiamato Plotly.

Plotly è un'altra libreria, molto simile a Advertools che possiamo usare per creare visualizzazioni e, in particolare, utilizzeremo Plotly express. La prima cosa che dobbiamo fare è installare Plotly, andiamo avanti e facciamo PIPinstallPlotly, eseguirò questa cella. È già stato installato in questo foglio di lavoro, ma va bene. Come puoi vedere, ci dirà che è già installato, già soddisfatto. Siamo a posto.

Prendi il codice che abbiamo appena copiato da qui e incollalo di nuovo nel nostro crawler. Non abbiamo bisogno di questo intermedio perché si tratta di dati che non stiamo utilizzando. Stiamo usando i nostri dati. Abbiamo bisogno di importare Plotly express come PX e dobbiamo connettere il nostro nuovo database qui per ottenere le informazioni corrette nel nostro grafico.

! pip install plotly
 
import plotly.express as px
fig = px.bar(json_counts, x='index', y='jsonld_@type') fig.show()
 

Il nostro frame di dati è stato chiamato conteggi JSON. Sulla nostra X useremo index e sulla Y useremo il tipo JSON. Perché ho scelto quelli? L'indice è dove si trovano le parole. Vogliamo averli sulla X, e quindi il conteggio è su JSON-LD @type, e quella sarà la nostra Y, che ci dirà quanti ci sono in ciascuna di quelle colonne. Andremo avanti e lo metteremo qui. Abbastanza semplice. E poi fig.show mostrerà quel grafico. Quindi ora abbiamo tutti i nostri diversi tipi quaggiù e qui abbiamo le diverse quantità di ogni tipo in un bel grafico.

Se vuoi condividerlo, puoi scaricarlo come PNG e Plotly lo scaricherà ora sul tuo computer. Puoi prendere questo e dire: "Abbiamo messo così tanto in evidenza su queste molte pagine". Un modo piuttosto interessante per visualizzarlo rapidamente.

Passaggio 5: esportare i dati

Tuttavia, cosa succede se vogliamo scaricare tutti questi dati e lavorarci, magari in fogli di Google o qualcos'altro? Bene, puoi anche farlo per farlo. Abbiamo solo bisogno di usare un'altra riga di codice e dovremmo essere a posto. Quindi diciamo che scaricheremo questa tabella qui con tutte le pagine del nostro sito Web e il tipo JSON-LD. Possiamo andare su questa cella o su chiunque tu voglia, quindi creeremo una nuova riga di codice.

Dobbiamo usare qualcosa di Google Colab chiamato file di importazione. Questa è la prima cosa che faremo. Successivamente, troveremo questo frame di dati, che è JSON-DF. Lo aggiungeremo di seguito e diremo .2_CSV, quindi gli daremo un nome. Possiamo chiamarlo JSON_DF.CSV. Dopo aver digitato questo codice, hai creato il tuo file CSV. Se guardo qui nella mia cartella, vedrai il file proprio qui.

Da qui, potrei semplicemente andare avanti e scaricarlo, oppure potrei inserire qui una riga di codice che ci aiuti a scaricarlo ancora più velocemente. Potrei dire files.download, e poi vado avanti e chiamo questo file, che ho appena creato, e ho chiesto a Colab solo di scaricarlo direttamente per me. Quando eseguo questa cella, scaricherà quel file e qui ce l'ho. Posso andare avanti, fare clic su Apri e ora ho questo file CSV che posso fare quello che voglio con qualsiasi tipo di strumento per fogli di calcolo che ho. Posso anche vedere quelli a cui è possibile che manchino del markup.

Ecco qua. Siamo andati avanti e abbiamo creato il nostro crawler personalizzato. Abbiamo estratto alcuni dati personalizzati. Abbiamo visualizzato quei dati e li abbiamo scaricati per utilizzarli in altri programmi. Abbiamo fatto tutto questo, e io non sono un programmatore di computer, non provo nemmeno a fingere di esserlo. Come ho detto prima, sono solo bravo a copiare e incollare. Voi ragazzi potete capire anche queste cose.

Quando hai domande, ci sono sempre soluzioni interessanti. Se sei disposto a provare qualcosa di nuovo e diverso, ti consiglio vivamente di giocare in Colab. Ci sono molte grandi risorse là fuori. Ci sono molte persone che sono molto più intelligenti di me facendo cose molto più incredibili da cui ho imparato moltissimo e che mi hanno aiutato nel mio gioco di marketing, ricerca, scansione e molto altro ancora.

Se hai domande su ciò che abbiamo fatto oggi, commenta qui sotto. Darò anche accesso a questo specifico file CoLab e condividerò anche passo dopo passo il codice che abbiamo utilizzato lungo il percorso. Grazie mille per aver guardato. Non dimenticare di iscriverti e alla prossima volta, buon marketing.

Ecco il codice completo se sei interessato: