Web Scraping: Tecniche di Scraping in chiave SEO

  • 19 dicembre 2015
  • SEO

Il web scraping o data scraping è una tecnica che consiste nell’estrarre informazioni e dati da siti web o pagine web grazie all’utilizzo di script, allo scopo di poter riutilizzare le informazioni prelevate per i propri scopi. Per poter fare scraping è necessario saper programmare, conoscere la struttura del sito web dal quale estrarre le informazioni, avere Firebug o Chrome DOM Inspector, scaricare SIMPLE HTML DOM e tanta pazienza 😉

Web scraping: A cosa serve?

Gli utilizzi di questa tecnica sono molteplici e le potenzialità si fermano soltanto di fronte all’ immaginazione. Puoi utilizzare il data scraping per:

  • Effettuare analisi dei competitor;
  • Copiare contenuti e riprodurli;
  • Creare tool utili per la SEO e per i tuoi progetti;
  • Creare archivi di contenuti;
  • Effettuare delle analisi SEO personalizzate;
  • Realizzare delle API su misura.

Attenzione! Il web scraping non è sempre legale. Twitter scrive: “scraping the Services without the prior consent of Twitter is expressly prohibited “

Analisi dei competitori

Potresti realizzare uno script PHP che prelevi dai siti web dei tuoi competitor tutti i meta tag contenuti all’interno della head oppure potresti prelevare i contenuti interni per vedere su quali chiavi stanno lavorando e che ottimizzazioni stanno facendo. Potresti prelevare tutti i tag title e i tag description dei primi 20 siti web posizionati per una determinata keyword sfruttando le API di google sull’estrazione dei risultati dalla SERP. Potresti anche controllare quanti link interni e quanti link esterni vengono inseriti nelle varie pagine. Insomma, i tuoi competitor non avranno più segreti grazie al web scraping.

Copiare contenuti e riprodurli

Ok, lo so, copiare è una parola che non piace. Effettivamente non piace neanche a me. Ma copiare contenuti, modificarli, adattarli e migliorarli è una cosa utile e che porta tanti risultati. Pensate ad esempio ad un sito web che abbia tutti i lyrics o i testi delle canzoni. I contenuti devono per forza essere uguali, in quanto il testo della canzone non lo si può cambiare. Questa estate ho realizzato un sito web che contiene più di 117 mila testi di canzoni italiane e straniere www.lalalatesticanzoni.it. Non ho neanche scritto 1 testo: li ho tutti “prelevati” da altri siti web grazie alle tecniche di Scraping. Ogni sera alle 23 il mio script va a visitare una serie di siti web italiani e stranieri dai quali prelevava le ultime hit del momento e le inserisce all’interno del database di lalalatesticanzoni.it. Insomma, un motore che gira da solo, del tutto automatizzato e che si autoalimenta. Potresti perfino creare uno script che preleva informazioni e dati da altri siti web in lingua straniera e tradurli in automatico nella lingua che ti interessa per creare siti web di spinta. Avresti in questo modo un numero illimitato di articoli originali, anche se di bassissima qualità. Per siti di spinta vanno anche bene.

Creazione di tool per la SEO

Tool per la SEO ne ho creati tantissimi. Non li ricordo neanche tutti. Ho creato un tool che mostra un grafico in cui viene riportata la curva dell’andamento delle keyword da seguire e informa via mail degli eventuali balzi in avanti o indietro. Ho creato un tool SEO che, dati in input una serie di siti web, mostra, in tempo reale, i valori di Page Rank, Domain autority, Page autority, MOZ rank, IP e Numero di backlink; utilissimo per fare analisi di siti web in scadenza o per misurare il valore di un sito web. Anche in questo caso ho realizzato un tool che mi invia tramite mail un report quotidiano con la lista dei siti web in scadenza filtrati per determinati valori di PR, PA, DA etc etc.

SIMPLE HTML DOM

Il tool che utilizzo per fare data scraping si chiama SIMPLE HTML DOM. E’ un parser scritto in PHP5 che permette di manipolare le pagine HTML in maniera semplice ed intuitiva: consente di estrapolare i tag e i contenuti su singola linea modificando anche gli elementi HTML. Puoi scaricarlo gratuitamente e caricare i file all’interno di uno spazio web o in locale se utilizzi un web server. Vediamo come funziona.

$html = file_get_html(‘http://www.test.com/’);
Grazie a questo comando è possibile scaricare tutto il codice HTML della pagina test.com e salvare il contenuto all’interno della variabile $html.

echo file_get_html(‘http://www.test.com/’)->plaintext;
Utilizzando plaintext, potrai prelevare tutto il contenuto di test.com privato dei tag

foreach($html->find(‘img’) as $element)
echo $element->src;
Grazie a questo comando è possibile stampare a video gli attributi src di tutti i tag img all’interno della pagina test.com

foreach($html->find(‘a’) as $element)
echo $element->href;
Grazie a questo comando è possibile stampare a video gli attributi href di tutti i link all’interno della pagina test.com

$ret = $html->find(‘div[id=foo]’); o anche $ret = $html->find(‘#foo’);
Grazie a questo comando trovi tutti i div il cui attributo id è foo

$es = $html->find(‘ul li’);
Grazie a questo comando trovi tutti i tag li all’interno del tag ul

Esempio 1. DIGG.COM – Preleviamo dati

Digg è un sito web di social bookmarking. Le notizie vengono proposte direttamente dagli utenti, e sono poi inserite in prima pagina grazie ad un sistema di graduatoria non gerarchico, basato sulla valutazione degli altri utenti della community. Nel codice che vedi sotto ho catturato tutte le immagini di gatti.
http://digg.com/search?q=cat


$html = file_get_html('http://digg.com/search?q=cat');
foreach($html->find('article') as $article) {
  $item['image']=trim($article->find('img.digg-story__image-img', 0)->src);
  echo "<img src='".$item['image']."'>";
}

Esempio 2. expireddomains.net – Preleviamo i siti web in scadenza

expireddomains.net è un portale web che mostra tutti i siti web che stanno per scadere filtrandoli per determinati valori come:

  • Pagerank
  • Backlinks calcolati da MOZ
  • Backlinks da diversi domini
  • Anno di creazione
  • Data di scadenza
  • Stato (disponibile o non disponibile)

Creiamo uno script che prelevi in automatico tutti i siti web in scadenza con determinate caratteristiche:


    include_once('simple_html_dom.php');
    $tabella="<table border='1' cellpadding='10'><tr>
                <td><strong>URL</strong></td>
                <td><strong>PR</strong></td>
                <td><strong>DP</strong></td>
                <td><strong>ANNO</strong></td>
                <td><strong>SCADENZA</strong></td>
            </tr>";
    $articles[] ="";
    $html = file_get_html("http://www.expireddomains.net/backorder-expired-domains/?start=0&ftlds[]=129");

    foreach($html->find('tr') as $article) {
        $item['URL']     = $article->find('a', 0)->plaintext;
        $item['PR']    = $article->find('.field_pr', 0)->plaintext;
        $item['BL'] = $article->find('.field_bl a', 0)->plaintext;
        $item['DP'] = $article->find('.field_domainpop a', 0)->plaintext;
        $item['ANNO'] = $article->find('.field_abirth a', 0)->plaintext;
        $item['SCADENZA'] = $article->find('.field_enddate a', 0)->plaintext;
        $articles[] = $item;
    }

    foreach($articles as $domini){
         $tutto.= "
            <tr>
                <td>".$domini['URL']."</td>
                <td>".$domini['PR']."</td>
                <td>".$domini['DP']."</td>
                <td>".$domini['ANNO']."</td>
                <td>".$domini['SCADENZA']."</td>
            </tr>
        ";
    }
    $tutto.= "</table>";
    echo $tutto;

Come potete notare, il potenziale del web scraping è veramente elevatissimo e puoi sbizzarrirti come vuoi per ottimizzare il tuo lavoro e trovare metodi alternativi per fare SEO. Buon scraping a tutti.

Sono Danilo Vaccalluzzo, socio fondatore di ExcogitoWeb nonchè sviluppatore web. MI occupo di realizzazione siti web, software gestionali personalizzati e sviluppo codice. Sono anche un SEO Senior e gestisco tutti i progetti web del team ExcogitoWeb

Il blog di ExcogitoWeb

ExcogitoWeb un'agenzia web di Bologna ed offre soluzioni complete e mirate di Web Marketing. I nostri servizi e la nostra pluriennale esperienza ti aiuteranno a raggiungere importanti obiettivi in tutte le aree del Web.

Richiedi un preventivo gratuito

Siamo una Web Agency di Bologna ed offriamo servizi SEO professionali che aiutano il tuo sito web ad incrementare notevolmente il traffico organico e raggiungere drasticamente le prime posizioni sui motori di ricerca per chiavi molto competitive.
Offriamo inoltre servizi di sviluppo web, realizzazione siti web, software gestionali personalizzati, APP mobile e consulenze a privati ed aziende.

Analisi SEO

Richiedi un'analisi SEO gratuita

Altri articoli del nostro blog

Vedi gli altri post
5 Commenti
  1. Your comment is awaiting moderation.

    Hi friends, its great article concerning teachingand completely explained, keep it up all the
    time.

    • Luca
    • 19 dicembre 2015
    Rispondi

    Ciao Danilo
    Articolo molto utile ed interessante. Mi piacerebbe approfondire il discorso dello scraping per i valori di PR, DA, backlinks, etc. Questo sarebbe molto utile. Puoi darmi qualche suggerimento per realizzare qualcosa di simile?

      • danilotrix
      • 22 dicembre 2015
      Rispondi

      Ciao Luca e grazie per i complimenti. Come ho scritto il web scarping è utilissimo in chiave SEO e può aiutare tanto agevolando il lavoro dei professionisti che lavorano in ambito SEO. Lo script che ti serve è quello di cui ho parlato all’esempio 2. Prendi quel codice, mettilo all’interno di un file PHP e caricalo su un server online. Poi devi fare in modo che, ogni volta che vuoi, venga richiamato per effettuare appunto le operazioni. Spero sia tutto chiaro. Un saluto

      • Rispondi

        Ciao, ho dedicato gli ultimi mesi al concepimento di un prodotto che facesse scraping veramente, fregandosene dei crowler di google bing o yahoo. Sto parlando di un sistema in grado di elaborare 100 mila request. 24/24, 7 giorni su 7. Adesso che ho completato il testing del core (10 milioni di serp in 3 giorni con una perdita dati del 0,33%) vorrei proporlo a qualche colosso del settore , il mio sistema non sfrutta le vulnerabilita del crowler lo aggira semplicemente.
        Se interessati potete contattarmi !

          • Mr
          • 17 maggio 2016
          Rispondi

          Ho utilizzato per anni prodotti pro sviluppati da terzi per lo scraping e e le attività connesse al SEO; funzionano si ! Chi più chi meno e prevedono l’ utilizzo di proxy a pagamento per fare ricerche complete. Lo scraping ha una potenzialità inaudita e con parecchi proxy permette di elaborare un numero di request accettabili e di raggiungere il target. Ho sempre usufruito dei servizi di proxy a pagamento (1 euro al mese per ogni ip) inizialmente 5 poi 10 poi 50 e anche 200…
          200 proxy dedicati si è rivelato un numero congruo per le mie necessita, generando errori per “solo” il 4% delle richieste inviate al motore di ricerca al costo di 200 euro al mese. Al prezzo di
          2500 euro all’ anno l’ attività non è sostenibile… Cambiare tecnica, rinunciare alla possibiltà di essere autonomo, di lavorare e farmi conoscere dai potenziali clienti senza dovermi spostare e bussare a centinaia di porte in cerca di un cliente… Ho deciso di arrangiarmi, realizzando un mio software che non utilizzasse proxy pur aggirando i vincoli sempre piu stringenti dei crowler Google Yahoo, bing ecc .

        • Rispondi

          100 mila request ogni ora

 

Lascia un commento