Przede wszystkim pobieranie API Web Scraper dla Pythona i spójrz na przykładowy moduł obsługi znajdujący się w środku, aby rozpocząć.
Najłatwiejszym sposobem przetwarzania zeskrobanych danych jest uzyskanie dostępu do danych jako obiekt JSON lub XML, ponieważ umożliwia to łatwą manipulację danymi i ich wyszukiwanie. JSON będzie miał następującą strukturę ogólną z nazwą zestawu danych jako atrybutem obiektu, sam zawierający 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 otrzyma wszystkie zeskrobane dane, które mogą obejmować dane, których nie można przekonwertować na obiekty JSON lub XML. Dlatego rodzaj otrzymywanych danych należy sprawdzić przed przetworzeniem.
scrapeResult = ScrapeResult.ScrapeResult() if scrapeResult.getExtension() == 'json': json = scrapeResult.toJSON() for json["Dataset_Name"] in 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
i wykonuj określone działania 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, rozszerzenie plików należy również sprawdzić, zanim zostaną saved.
Poniżej wymieniono wszystkie metody klasy ScrapeResult, których można użyć do przetwarzania wyników zgarniania.
Najlepszym sposobem debugowania programu obsługi języka Python jest pobranie wyników skrobania z pliku skrobaki z sieci strona, save plik, z którym masz problem, do dostępnej lokalizacji, a następnie przekaż ścieżkę tego pliku do konstruktora klasy ScrapeResult. Pozwala to na debugowanie programu obsługi bez konieczności wykonywania nowego skrobania za każdym razem, jak pokazano poniżej.
scrapeResult = ScrapeResult.ScrapeResult("data.json"); #the rest of your handler code remains the same
Dzięki interfejsowi API Web Scraper dla GrabzIt dla Pythona możesz zdalnie uruchamiać, zatrzymywać, włączać lub wyłączać scrape w razie potrzeby. Jest to pokazane w poniższym przykładzie, w którym identyfikator zgarnięcia wraz z nowym statusem zgarnięcia jest przekazywany do pliku SetScrapeStatus
Metoda.
client = GrabzItScrapeClient.GrabzItScrapeClient("Sign in to view your Application Key", "Sign in to view your Application Secret") //Get all of our scrapes myScrapes = client.GetScrapes() if (len(myScrapes) == 0) { raise Exception('You have not created any scrapes yet! Create one here: https://grabz.it/scraper/scrape/') } //Start the first scrape client.SetScrapeStatus(myScrapes[0].ID, "Start") if (len(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 zgarniania stanu.