Strumenti per acquisire e convertire il Web

API Web Scraper per Python API Python Scraper

Prima di tutto scaricare l'API Web Scraper per Python e guarda il gestore di esempio che si trova all'interno per iniziare.

Elaborazione dei dati acquisiti

Il modo pi√Ļ semplice per elaborare i dati di scraping √® accedere ai dati come oggetto JSON o XML, in quanto ci√≤ consente di manipolare e interrogare facilmente i dati. JSON sar√† strutturato nel seguente formato generale con il nome del set di dati come attributo oggetto, a sua volta contenente una matrice di oggetti con ciascun nome di colonna come un altro attributo.

{
  "Dataset_Name": [
    {
      "Column_One": "https://grabz.it/",
      "Column_Two": "Found"
    },
    {
      "Column_One": "http://dfadsdsa.com/",
      "Column_Two": "Missing"
    }]
}

Prima di tutto, è necessario ricordare che al gestore verranno inviati tutti i dati di cui è stato eseguito il scraping, che possono includere dati che non possono essere convertiti in oggetti JSON o XML. Pertanto, il tipo di dati che stai ricevendo deve essere verificato prima di essere elaborato.

scrapeResult = ScrapeResult.ScrapeResult()

if scrapeResult.getExtension() == 'json':
    json = scrapeResult.toJSON()
    for json["Dataset_Name"] in obj:
        if obj["Column_Two"] == "Found":
            #do something
        else:
            #do something else
else:
    #probably a binary file etc save it
    scrapeResult.save("results/"+scrapeResult.getFilename())

L'esempio sopra mostra come scorrere tutti i risultati del set di dati Dataset_Name e fare azioni specifiche a seconda del valore di Column_Two attributo. Inoltre, se il file ricevuto dal gestore non è un file JSON, lo è solo saved alla directory dei risultati. Mentre la classe ScrapeResult tenta di garantire che tutti i file postati provengano dai server GrabzIt, è necessario verificare anche l'estensione dei file prima che siano saved.

Metodi ScrapeResult

Di seguito sono elencati tutti i metodi della classe ScrapeResult che possono essere utilizzati per elaborare i risultati della raschiatura.

  • string getExtension() - ottiene l'estensione di qualsiasi file risultante dalla raschiatura.
  • string getFilename() - ottiene il nome file di qualsiasi file risultante dalla raschiatura.
  • object toJSON() - converte qualsiasi file JSON risultante dalla raschiatura into un oggetto.
  • string toString() - converte qualsiasi file risultante dalla raschiatura in a string.
  • xml.etree.ElementTree toXML() - converte qualsiasi file XML risultante dalla raschiatura in un elemento XML.
  • boolean save(path) - saves qualsiasi file risultante dalla raschiatura, restituisce vero se ha esito positivo.

Debug

Il modo migliore per eseguire il debug del gestore Python è scaricare i risultati per uno scrap dal graffi web pagina, save il file con cui si sta riscontrando un problema in un percorso accessibile e quindi passare il percorso di quel file al costruttore della classe ScrapeResult. Ciò consente di eseguire il debug del gestore senza dover eseguire ogni volta un nuovo scrap, come mostrato di seguito.

scrapeResult = ScrapeResult.ScrapeResult("data.json");

#the rest of your handler code remains the same

Controllo di una raschiatura

Con l'API Web Scraper di GrabzIt per Python è possibile avviare, arrestare, abilitare o disabilitare in remoto uno scrap secondo necessità. Questo è mostrato nell'esempio seguente dove l'ID del raschiamento insieme al nuovo stato di raschiatura è passato al SetScrapeStatus metodo.

client = GrabzItScrapeClient.GrabzItScrapeClient("Sign in to view your Application Key", "Sign in to view your Application Secret")
//Get all of our scrapes
myScrapes = client.GetScrapes()
if (len(myScrapes) == 0)
{
    raise Exception('You have not created any scrapes yet! Create one here: https://grabz.it/scraper/scrape.aspx')
}
//Start the first scrape
client.SetScrapeStatus(myScrapes[0].ID, "Start")
if (len(myScrapes[0].Results) > 0)
{
    //re-send first scrape result if it exists
    client.SendResult(myScrapes[0].ID, myScrapes[0].Results[0].ID);
}

Metodi e proprietà GrabzItScrapeClient

Di seguito sono elencati tutti i metodi e le proprietà della classe GrabzItScrapeClient che possono essere utilizzati per controllare gli scrap di stato.

  • GrabzItScrape[] GetScrapes() - restituisce tutti i graffi dell'utente come una matrice di oggetti GrabzItScrape.
  • GrabzItScrape GetScrape(id) - restituisce un oggetto GrabzItScrape che rappresenta lo scrap desiderato.
  • SetScrapeProperty(id, property) - imposta il propriet√† di un graffio e restituisce true se ha esito positivo.
  • SetScrapeStatus(id, status) - imposta lo stato ("Avvio", "Arresto", "Abilita", "Disabilita") di un graffio e restituisce vero se ha esito positivo.
  • SendResult(id, resultId) - rinvia il risultato di una raschiatura e restituisce vero in caso di successo.
    • L'id di raschiatura e l'id di risultato sono reperibili dal metodo GetScrape.
  • SetLocalProxy(proxyUrl) - imposta il server proxy locale da utilizzare per tutte le richieste.