Automatic Bot for Scraping – Adesso si può su VPS linux.

Buongiorno cari lettori del blog, finisco la seconda guida del mese e poi mi assenterò per un pò per impegni personali.

L’articolo di oggi parte dal termine che sicuramente avrete sentito negli ultimi tempi, ovvero lo scraping. Che cos’è?

Il web scraping è una tecnica che consiste nell’utilizzare software per automatizzare il recupero dei dati di proprio interesse da specifici siti web. Il web scraping non è invece – meglio chiarirlo subito – un furto di dati ad accesso riservato: i dati recuperati sono già pubblicati/disponibili sui siti di riferimento, ma il software utilizzato è programmato per accedere a tali siti in maniera sistematica e automatizzata, a specifici intervalli programmati.”

Detto questo analizziamo invece l’Automatic Bot ovvero un BOT (Robot) automatico implementato in python che permette in via del tutto automatica con un crontab di automatizzare determinate operazioni.

Questo articolo ovviamente è un ramo del precedente, dato che le funzioni spiegate qui fanno inevitabilmente parte di Dominus.

Lo scraping utilizzato su Dominus sfrutta un istanza di Mozzilla (gekodriver.exe) per aprire il browser ed estrapolare le informazioni utili; Certo che questo in ambito windows è sicuramente molto più semplice, ma i VPS Windows sappiamo benissimo quanto costano (almeno che non volessimo installare una macchina windows a casa sempre accesa) è opportuno utilizzare questo sistema su un VPS linux da 3 euro al mese.

Scraping with headless

Problematiche da affrontare:

  1. Installazione del driver Mozzilla su ubuntu
  2. Possibilità di apertura del browser (per lo scraping su una versione server quindi senza interfaccia grafica)
  3. Automatizzare la giocata di una schedina 😛 (perché no)

Iniziamo ad acquistare il nostro VPS, rigorosamente ubuntu la versione non è importante.

Installiamo i tool necessari per realizzare un Virtual Monitor utile all’intento:

sudo apt-get install libxss1 libappindicator1 libindicator7
sudo apt-get install xvfb
sudo apt-get install firefox

Contestualmente scarichiamo il driver (geckodriver) da https://github.com/mozilla/geckodriver/releases/tag/v0.24.0

Una volta scaricato (su root) copiamolo in PATH /bin):

export PATH=$PATH:/root/
cp geckodriver /usr/bin/

da qui in poi non dobbiamo fare altro che installare python e selenium da pip:

sudo apt-get install python python-pip
sudo pip install selenium

Adesso il nostro codice di esempio:

#!/usr/bin/env python
from selenium import webdriver
from pyvirtualdisplay import Display

display = Display(visible=0, size=(800, 600))
display.start()
browser = webdriver.Firefox()
browser.get('https://runci.org/')
print browser.title

E’ fatto ovvio, che una procedura del genere può portare al compimento di svariate (se non tutte le operazioni) che un utente normale sul web può fare in maniera del tutto AUTOMATIZZATA. Così facendo giocare una schedina, manipolare determinate informazioni estratte diventa un gioco da ragazzi con un poco di programmazione.

Al prossimo articolo!

Leave a Reply

Your email address will not be published. Required fields are marked *