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.
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.
Poniżej wymieniono wszystkie metody klasy ScrapeResult, których można użyć do przetwarzania wyników zgarniania.
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
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/"); } //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); }
Poniżej wymieniono wszystkie metody i właściwości klasy GrabzItScrapeClient, których można użyć do sterowania zadrapaniami sieci.