Strumenti per acquisire e convertire il Web

API Scraper PHP con GrabzItAPI Scraper PHP

La nostra API Scraper PHP consente di aggiungere alla tua app la potenza del Web Scraper di GrabzIt. Questa è una soluzione molto migliore rispetto ai semplici parser DOM HTML, di solito implementati dalle app di scraping PHP.

Per cominciare devi creare una raschiatura. Quindi, per analizzare il Web nella tua app, è necessario scaricare la libreria PHP. Infine, per iniziare, guarda il gestore di esempio che si trova all'interno del download.

Elaborazione dei dati acquisiti

Il modo più semplice per elaborare i dati acquisiti è accedere ai dati come oggetto JSON o XML. Ciò consente ai dati di essere facilmente manipolati e interrogati. JSON sarà strutturato nel seguente formato generale, con il nome del set di dati come attributo oggetto. Stesso 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"
    }]
}

Innanzitutto bisogna ricordare che al gestore verranno inviati tutti i dati estratti. Ciò può 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 = new \GrabzIt\Scraper\ScrapeResult();

if ($scrapeResult->getExtension() == 'json')
{
    $json = $scrapeResult->toJSON();
    foreach ($json->Dataset_Name as $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. Quindi per ogni risultato eseguire un'azione specifica in base al 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 di GrabzIt. Anche l'estensione dei file dovrebbe essere verificata prima che lo 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.
  • SimpleXMLElement 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 PHP è scaricare i risultati per uno scrap dal graffi web pagina. Poi save il file con cui stai riscontrando un problema in una posizione accessibile. Il percorso di questo file può quindi essere passato 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 = new \GrabzIt\Scraper\ScrapeResult("data.json");

//the rest of your handler code remains the same

Controllo di una raschiatura

Con l'API Web Scraper di GrabzIt è possibile modificare lo stato di uno scrap. Avviando, arrestando, abilitando o disabilitando a distanza un raschiamento da remoto, se necessario. Questo è mostrato nell'esempio seguente. Passando l'ID del graffio insieme allo stato di raschiatura desiderato al SetScrapeStatus metodo.

$client = new \GrabzIt\Scraper\GrabzItScrapeClient("Sign in to view your Application Key", "Sign in to view your Application Secret");
//Get all of our scrapes
$myScrapes = $client->GetScrapes();
if (empty($myScrapes))
{
    throw new Exception("You haven't created any scrapes yet! Create one here: https://grabz.it/scraper/scrape.aspx");
}
//Start the first scrape
$client->SetScrapeStatus($myScrapes[0]->ID, "Start");
if (count($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 web.

  • 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.