Nasz PHP Scraper API pozwala na dodanie mocy Web Scraper GrabzIt do Twojej aplikacji. Jest to znacznie lepsze rozwiązanie niż proste parsery HTML DOM, zwykle implementowane przez aplikacje PHP scraping.
Na początek musisz stworzyć zdrapkę. Następnie, aby przeanalizować sieć w swojej aplikacji, musisz pobieranie biblioteka PHP. Na koniec, aby rozpocząć, spójrz na przykładową procedurę obsługi znajdującą się w pliku do pobrania.
Najłatwiejszym sposobem przetwarzania zeskrobanych danych jest dostęp do danych jako obiektu JSON lub XML. Ponieważ umożliwia to łatwą manipulację danymi i przeszukiwanie ich. JSON będzie miał strukturę w następującym ogólnym formacie, z nazwą zestawu danych jako atrybutem obiektu. Sama w sobie zawiera tablicę obiektów z każdą nazwą 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 handlerowi zostaną przesłane 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 ich 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śloną akcję 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ę upewnić, że wszystkie opublikowane pliki pochodzą z serwerów GrabzIt. Rozszerzenie plików należy również sprawdzić przed ich wykonaniem 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 dla zeskrobania z pliku skrobaki z sieci strona. Następnie save plik, z którym masz problem, do dostępnej lokalizacji. Ścieżkę do tego pliku można następnie przekazać do konstruktora klasy ScrapeResult. Pozwala to na debugowanie modułu obsługi bez konieczności wykonywania za każdym razem nowego zeskrobywania, 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 zeskrobania. Zdalnie uruchamiając, zatrzymując, włączając lub wyłączając zgarnianie w razie potrzeby. Pokazano to na poniższym przykładzie. Przekazując identyfikator złomowania wraz z żądanym statusem złomowania 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 kontrolowania zadrapań sieciowych.