Tools om het web vast te leggen en te converteren

PHP Scraper API met GrabzItPHP Scraper API

Met onze PHP Scraper API kan de kracht van GrabzIt's Web Scraper aan uw app worden toegevoegd. Dit is een veel betere oplossing dan de eenvoudige HTML DOM-parsers, meestal geïmplementeerd door PHP-scraping-apps.

Om te beginnen moet je maak een schraapsel. Dan moet u het web in uw app ontleden hier de PHP-bibliotheek. Bekijk ten slotte de voorbeeldhandler in de download.

Geschraapte gegevens verwerken

De eenvoudigste manier om geschraapte gegevens te verwerken, is toegang tot de gegevens als een JSON- of XML-object. Hierdoor kunnen de gegevens gemakkelijk worden gemanipuleerd en opgevraagd. De JSON wordt gestructureerd in de volgende algemene indeling, met de naam van de gegevensset als het objectkenmerk. Het bevat een reeks objecten met elke kolomnaam als een ander kenmerk.

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

Allereerst moet worden bedacht dat de handler alle geëxtraheerde gegevens zal ontvangen. Dit kunnen gegevens zijn die niet kunnen worden geconverteerd naar JSON- of XML-objecten. Daarom moet het type gegevens dat u ontvangt, worden gecontroleerd voordat deze worden verwerkt.

$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());
}

Het bovenstaande voorbeeld laat zien hoe u alle resultaten van de gegevensset kunt doorlopen Dataset_Name. Voer vervolgens voor elk resultaat een specifieke actie uit, afhankelijk van de waarde van de Column_Two attribuut. Ook als het door de handler ontvangen bestand geen JSON-bestand is, dan is het gewoon saved naar resultatenmap. Terwijl de klasse ScrapeResult probeert ervoor te zorgen dat alle geposte bestanden afkomstig zijn van de servers van GrabzIt. De extensie van de bestanden moet ook worden gecontroleerd voordat ze zijn saved.

ScrapeResult Methods

Hieronder staan ​​alle methoden van de klasse ScrapeResult die kunnen worden gebruikt om scrape-resultaten te verwerken.

  • string getExtension() - krijgt de extensie van elk bestand dat het resultaat is van de scrape.
  • string getFilename() - haalt de bestandsnaam op van elk bestand dat voortkomt uit het schrapen.
  • object toJSON() - converteert elk JSON-bestand als gevolg van de scrape into een object.
  • string toString() - converteert elk bestand dat resulteert uit het schrapen naar een string.
  • SimpleXMLElement toXML() - converteert elk XML-bestand dat resulteert uit het schrapen naar een XML-element.
  • boolean save($path) - saves elk bestand dat voortkomt uit het schrapen, retourneert true als het slaagt.

Debugging

De beste manier om uw PHP-handler te debuggen is om de resultaten voor een scrape van de te downloaden web krassen bladzijde. Vervolgens save het bestand waarmee u een probleem ondervindt op een toegankelijke locatie. Het pad van dit bestand kan vervolgens worden doorgegeven aan de constructor van de klasse ScrapeResult. Dit stelt u in staat om uw handler te debuggen zonder elke keer opnieuw te moeten schrapen, zoals hieronder wordt getoond.

$scrapeResult = new \GrabzIt\Scraper\ScrapeResult("data.json");

//the rest of your handler code remains the same

Een schraapbediening besturen

Met de Web Scraper API van GrabzIt kunt u die status van een scrape wijzigen. Door op afstand een scrape te starten, stoppen, inschakelen of uitschakelen. Dit wordt weergegeven in het onderstaande voorbeeld. Door de ID van het schraapsel samen met de gewenste schraapstatus door te geven aan de SetScrapeStatus methode.

$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);
}

GrabzItScrapeClient-methoden en eigenschappen

Hieronder vindt u alle methoden en eigenschappen van de klasse GrabzItScrapeClient die kunnen worden gebruikt om de webafval te beheren.

  • GrabzItScrape[] GetScrapes() - retourneert alle gebruikers kladjes als een reeks GrabzItScrape-objecten.
  • GrabzItScrape GetScrape($id) - retourneert een GrabzItScrape-object dat het gewenste schraapsel vertegenwoordigt.
  • SetScrapeProperty($id, $property) - stelt de eigendom van een schraapsel en retourneert true indien succesvol.
  • SetScrapeStatus($id, $status) - stelt de status in ("Start", "Stop", "Inschakelen", "Uitschakelen") van een scrape en geeft waar terug als succesvol.
  • SendResult($id, $resultId) - verzendt het resultaat van een scrape en geeft waar terug als succesvol.
    • De scrape-id en de resultaat-id zijn te vinden via de methode GetScrape.
  • SetLocalProxy($proxyUrl) - stelt de lokale proxyserver in voor alle verzoeken.