Prima di tutto scaricare l'API Web Scraper per Python e guarda il gestore di esempio che si trova all'interno per iniziare.
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.
Di seguito sono elencati tutti i metodi della classe ScrapeResult che possono essere utilizzati per elaborare i risultati della raschiatura.
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
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/') } //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); }
Di seguito sono elencati tutti i metodi e le proprietà della classe GrabzItScrapeClient che possono essere utilizzati per controllare gli scrap di stato.