Tools zum Erfassen und Konvertieren des Webs

PHP Scraper API mit GrabzItPHP Scraper API

Unsere PHP Scraper API erm├Âglicht es, die Leistung von GrabzIts Web Scraper zu Ihrer App hinzuzuf├╝gen. Dies ist eine viel bessere L├Âsung als die einfachen HTML-DOM-Parser, die normalerweise von PHP-Scraping-Apps implementiert werden.

Zun├Ąchst m├╝ssen Sie eine kratzer schaffen. Dann m├╝ssen Sie das Web in Ihrer App analysieren herunterladen die PHP-Bibliothek. Schauen Sie sich als Erstes den Beispiel-Handler an, der sich im Download befindet.

Verarbeiten Sie verkratzte Daten

Der einfachste Weg, um verkratzte Daten zu verarbeiten, besteht darin, auf die Daten als JSON- oder XML-Objekt zuzugreifen. Auf diese Weise k├Ânnen die Daten einfach manipuliert und abgefragt werden. Der JSON wird im folgenden allgemeinen Format mit dem Dataset-Namen als Objektattribut strukturiert. Selbst enth├Ąlt ein Array von Objekten mit jedem Spaltennamen als ein anderes Attribut.

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

Zun├Ąchst muss beachtet werden, dass dem Handler alle extrahierten Daten gesendet werden. Dies kann Daten enthalten, die nicht in JSON- oder XML-Objekte konvertiert werden k├Ânnen. Daher muss die Art der Daten, die Sie erhalten, vor der Verarbeitung ├╝berpr├╝ft werden.

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

Das obige Beispiel zeigt, wie alle Ergebnisse des Datensatzes durchlaufen werden Dataset_Name. F├╝hren Sie dann f├╝r jedes Ergebnis eine bestimmte Aktion aus, die vom Wert des Symbols abh├Ąngt Column_Two Attribut. Auch wenn die vom Handler empfangene Datei keine JSON-Datei ist, ist es einfach saved zum Ergebnisverzeichnis. W├Ąhrend die ScrapeResult-Klasse versucht sicherzustellen, dass alle ver├Âffentlichten Dateien von GrabzIt-Servern stammen. Die Dateierweiterung sollte ebenfalls ├╝berpr├╝ft werden, bevor sie angezeigt wird saved.

ScrapeResult-Methoden

Nachfolgend sind alle Methoden der ScrapeResult-Klasse aufgef├╝hrt, die zum Verarbeiten von Scrape-Ergebnissen verwendet werden k├Ânnen.

  • string getExtension() - Ruft die Erweiterung einer Datei ab, die aus dem Scrape resultiert.
  • string getFilename() - Ruft den Dateinamen einer Datei ab, die aus dem Scrape resultiert.
  • object toJSON() - konvertiert alle aus dem Scrape resultierenden JSON-Dateien into ein Objekt.
  • string toString() - konvertiert alle aus dem Scrape resultierenden Dateien in eine string.
  • SimpleXMLElement toXML() - konvertiert jede aus dem Scrape resultierende XML-Datei in ein XML-Element.
  • boolean save($path) - saveWenn eine Datei aus dem Scrape resultiert, wird true zur├╝ckgegeben, wenn sie erfolgreich ist.

Fehlerbeseitigung

Der beste Weg, um Ihren PHP-Handler zu debuggen, ist das Herunterladen der Ergebnisse f├╝r ein Scrape von der Web-Scrapes Seite. Dann save Die Datei, mit der Sie ein Problem haben, befindet sich an einem zug├Ąnglichen Speicherort. Der Pfad dieser Datei kann dann an den Konstruktor der ScrapeResult-Klasse ├╝bergeben werden. Auf diese Weise k├Ânnen Sie Ihren Handler debuggen, ohne jedes Mal ein neues Scrape durchf├╝hren zu m├╝ssen (siehe unten).

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

//the rest of your handler code remains the same

Kratzer kontrollieren

Mit der Web Scraper API von GrabzIt k├Ânnen Sie den Status eines Scrapings ├Ąndern. Durch ferngesteuertes Starten, Stoppen, Aktivieren oder Deaktivieren eines Scrapes nach Bedarf. Dies wird im folgenden Beispiel gezeigt. Indem Sie die ID des Scrapes zusammen mit dem gew├╝nschten Scrape-Status an das ├╝bermitteln 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);
}

Methoden und Eigenschaften von GrabzItScrapeClient

Nachfolgend sind alle Methoden und Eigenschaften der GrabzItScrapeClient-Klasse aufgef├╝hrt, mit denen die Web-Scrapes gesteuert werden k├Ânnen.

  • GrabzItScrape[] GetScrapes() - Gibt alle Scrapes des Benutzers als Array von GrabzItScrape-Objekten zur├╝ck.
  • GrabzItScrape GetScrape($id) - gibt ein GrabzItScrape-Objekt zur├╝ck, das das gew├╝nschte Scrape darstellt.
  • SetScrapeProperty($id, $property) - setzt den Eigentum eines Kratzbaums und gibt bei Erfolg true zur├╝ck.
  • SetScrapeStatus($id, $status) - Setzt den Status ("Start", "Stopp", "Aktivieren", "Deaktivieren") eines Scrapes und gibt bei Erfolg true zur├╝ck.
  • SendResult($id, $resultId) - Sendet das Ergebnis eines Scrapes erneut und gibt bei Erfolg true zur├╝ck.
    • Die Scrape-ID und die Ergebnis-ID finden Sie in der GetScrape-Methode.
  • SetLocalProxy($proxyUrl) - Legt fest, dass der lokale Proxy-Server f├╝r alle Anforderungen verwendet wird.