Narzędzia do przechwytywania i konwertowania Internetu

PHP Scraper API z GrabzItPHP Scraper API

Nasz interfejs API PHP Scraper umożliwia dodanie do Twojej aplikacji mocy GrabzIt's Web Scraper. Jest to znacznie lepsze rozwiązanie niż proste analizatory składni DOM HTML, zwykle implementowane przez aplikacje skrobiące PHP.

Na początek musisz stworzyć zdrapkę. Następnie, aby przeanalizować sieć w aplikacji, musisz pobieranie biblioteka PHP. Wreszcie, aby rozpocząć, spójrz na przykładowy moduł obsługi znajdujący się w pliku do pobrania.

Przetwarzaj dane zeskrobane

Najłatwiejszym sposobem przetwarzania zeskrobanych danych jest dostęp do danych jako obiekt JSON lub XML. Ponieważ umożliwia to łatwą manipulację i wyszukiwanie danych. Struktura JSON będzie miała następujący ogólny format, z nazwą zestawu danych jako atrybutem obiektu. Sam zawiera tablicę obiektów z nazwą każdej kolumny jako innym atrybutem.

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

Przede wszystkim należy pamiętać, że program obsługi wyśle ​​wszystkie wyodrębnione dane. Może to obejmować dane, których nie można przekonwertować na obiekty JSON lub XML. Dlatego rodzaj otrzymywanych danych należy sprawdzić przed przetworzeniem.

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

Powyższy przykład pokazuje, jak przeglądać wszystkie wyniki zestawu danych Dataset_Name. Następnie dla każdego wyniku wykonaj określone działanie w zależności od wartości Column_Two atrybut. Również jeśli plik otrzymany przez program obsługi nie jest plikiem JSON, to jest po prostu saved do katalogu wyników. Podczas gdy klasa ScrapeResult stara się zapewnić, że wszystkie opublikowane pliki pochodzą z serwerów GrabzIt. Przed rozszerzeniem należy również sprawdzić rozszerzenie plików saved.

Metody ScrapeResult

Poniżej wymieniono wszystkie metody klasy ScrapeResult, których można użyć do przetwarzania wyników zgarniania.

  • string getExtension() - pobiera rozszerzenie dowolnego pliku wynikającego ze zeskrobania.
  • string getFilename() - pobiera nazwę pliku dowolnego pliku wynikającego ze zeskrobania.
  • object toJSON() - konwertuje dowolny plik JSON powstały w wyniku zadrapania into przedmiot.
  • string toString() - konwertuje dowolny plik powstały w wyniku złomowania na plik string.
  • SimpleXMLElement toXML() - konwertuje dowolny plik XML powstały w wyniku zadrapania na element XML.
  • boolean save($path) - saves dowolny plik wynikający ze zeskrobania, zwraca true, jeśli się powiedzie.

Debugowanie

Najlepszym sposobem na debugowanie programu obsługi PHP jest pobranie wyników skrobania z skrobaki z sieci strona. Następnie save plik, z którym masz problem, do dostępnej lokalizacji. Ścieżka tego pliku może być następnie przekazana do konstruktora klasy ScrapeResult. Umożliwia to debugowanie programu obsługi bez konieczności wykonywania nowego skrobania za każdym razem, jak pokazano poniżej.

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

//the rest of your handler code remains the same

Kontrolowanie zadrapania

Dzięki interfejsowi API Web Scraper GrabzIt możesz zmienić ten status scrape. Przez zdalne uruchamianie, zatrzymywanie, włączanie lub wyłączanie zgarniania w razie potrzeby. Jest to pokazane w poniższym przykładzie. Przekazując identyfikator skrobaka wraz z żądanym statusem skrobania do SetScrapeStatus Metoda.

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

Metody i właściwości GrabzItScrapeClient

Poniżej wymieniono wszystkie metody i właściwości klasy GrabzItScrapeClient, których można użyć do sterowania zadrapaniami sieci.

  • GrabzItScrape[] GetScrapes() - zwraca wszystkie zadrapania użytkowników jako tablicę obiektów GrabzItScrape.
  • GrabzItScrape GetScrape($id) - zwraca obiekt GrabzItScrape reprezentujący pożądane zadrapanie.
  • SetScrapeProperty($id, $property) - ustawia właściwość zadrapania i zwraca true, jeśli się powiedzie.
  • SetScrapeStatus($id, $status) - ustawia status („Start”, „Stop”, „Włącz”, „Wyłącz”) zeskrobania i zwraca true, jeśli się powiedzie.
  • SendResult($id, $resultId) - ponownie wysyła wynik zadrapania i zwraca wartość true, jeśli się powiedzie.
    • Identyfikator scrape i identyfikator wyniku można znaleźć w metodzie GetScrape.
  • SetLocalProxy($proxyUrl) - ustawia lokalny serwer proxy do użycia dla wszystkich żądań.