Narzędzia do przechwytywania i konwertowania Internetu

Web Scraper API dla ASP.NET

Interfejs API zgarniacza ASP.NET

Przede wszystkim pobieranie Web Scraper API dla ASP.NET i sprawdź plik handler.ashx znajdujący się w przykładowym projekcie internetowym, aby rozpocząć.

Przetwarzaj dane zeskrobane

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.

{
  "Items": [
    {
      "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.

Jednak w przypadku ASP.NET API wymagany jest dodatkowy krok w celu odczytania plików JSON lub XML, w których tworzone są klasy pasujące do oczekiwanej struktury danych. Przykład tego pokazano poniżej, gdzie utworzono dwie definicje klas do przechowywania powyższej struktury danych JSON.

public class DataSet
{
    public List<Item> Items;
}

public class Item
{
    public string Column_One;
    public string Column_Two;
}

Te klasy są teraz używane do konwersji pliku JSON into użyteczną strukturę obiektu. W poniższym przykładzie konstruktor ScrapeResult odbiera klasę HttpRequest, jednak akceptuje również klasę HttpRequestBase, aby była kompatybilna z projektami internetowymi ASP.NET MVC.

ScrapeResult scrapeResult = new ScrapeResult(context.Request);

if (scrapeResult.Extension == "json")
{
    DataSet dataSet = scrapeResult.FromJSON<DataSet>();
    foreach (Item item in dataSet.Items)
    {
        if (item.Column_Two == "Found")
        {
            //do something
        }
        else
        {
            //do something else
        }
    }
}
else
{
    //probably a binary file etc save it
    scrapeResult.save(context.Server.MapPath("~/results/" + scrapeResult.Filename));
}

Powyższy przykład pokazuje, jak przejść przez wszystkie wyniki klasy zestawu danych i wykonać określone akcje w zależności od wartości Column_Two nieruchomość. 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.

Metody i właściwości ScrapeResult

Poniżej wymieniono wszystkie metody i właściwości klasy ScrapeResult, których można użyć do przetwarzania wyników zeskrobywania.

Debugowanie

Najlepszym sposobem na debugowanie procedury obsługi ASP.NET jest pobranie wyników dla zeskrobania 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 = new ScrapeResult("data.json");

#the rest of your handler code remains the same

Kontrolowanie zadrapania

Dzięki interfejsowi API Web Scraper GrabzIt możesz również zmienić status zgarniania, rozpoczynając, zatrzymując lub wyłączając zgarnianie w razie potrzeby. Jest to pokazane w poniższym przykładzie poprzez przekazanie identyfikatora zgarnięcia wraz z żądanym stanem zgarnięcia dostarczonym przez ScrapeStatus wylicz do SetScrapeStatus Metoda.

GrabzItScrapeClient client = new GrabzItScrapeClient("Sign in to view your Application Key", "Sign in to view your Application Secret");
//Get all of our scrapes
GrabzItScrape[] myScrapes = client.GetScrapes();
if (myScrapes.Length == 0)
{
    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, ScrapeStatus.Start);
if (myScrapes[0].Results.Length > 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ń.

  • SetLocalProxy (string proxyUrl) - ustawia użycie lokalnego serwera proxy dla wszystkich żądań.