Narzędzia do przechwytywania i konwertowania Internetu

PHP Scraper API z GrabzIt

PHP Scraper API

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.

Przetwarzaj dane zeskrobane

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.

Metody ScrapeResult

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

Debugowanie

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

Kontrolowanie zadrapania

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

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 kontrolowania zadrapań sieciowych.