Web Yakalama ve Dönüştürme Araçları

GrabzIt ile PHP Kazıyıcı APIPHP Kazıyıcı API

PHP Kazıyıcı API'mız, GrabzİT'in Web Kazıyıcı'nın gücünün uygulamanıza eklenmesini sağlar. Bu, genellikle PHP kazıma uygulamaları tarafından uygulanan basit HTML DOM ayrıştırıcılarından çok daha iyi bir çözümdür.

Seninle başlamak için kazıyın. Ardından web’i uygulamanızda ayrıştırmak için indir PHP Kütüphanesi. Son olarak, başlamak için, indirme içinde bulunan örnek işleyiciye bakın.

Kazınmış Veriyi İşleme

Kazınmış verileri işlemenin en kolay yolu, verilere bir JSON veya XML nesnesi olarak erişmektir. Bu, verilerin kolayca manipüle edilmesini ve sorgulanmasını sağlar. JSON, aşağıdaki genel formatta, nesne niteliği olarak veri kümesi adıyla yapılandırılacaktır. Kendisi başka bir nitelik olarak her sütun adına sahip bir nesne dizisi içerir.

{
  "Dataset_Name": [
    {
      "Column_One": "https://grabz.it/",
      "Column_Two": "Found"
    },
    {
      "Column_One": "http://dfadsdsa.com/",
      "Column_Two": "Missing"
    }]
}

Öncelikle, işleyicinin çıkarılan tüm verileri göndereceği unutulmamalıdır. Bu, JSON veya XML nesnelerine dönüştürülemeyen verileri içerebilir. Bu nedenle, aldığınız veri türünün işlenmeden önce kontrol edilmesi gerekir.

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

Yukarıdaki örnekte, veri kümesinin tüm sonuçlarında nasıl döngü geçirileceği gösterilmiştir Dataset_Name. Sonra her sonuç için değerinin değerine bağlı olarak belirli bir işlem yapın. Column_Two özniteliği. Ayrıca, işleyici tarafından alınan dosya bir JSON dosyası değilse, o zaman sadece saved sonuç dizinine. ScrapeResult sınıfı, gönderilen tüm dosyaların GrabzIt'ın sunucularından geldiğinden emin olmayı dener. Dosyaların uzantısı da onlar önce kontrol edilmelidir saved.

ScrapeResult Yöntemleri

Aşağıda, sıyrık sonuçlarını işlemek için kullanılabilecek ScrapeResult sınıfının tüm yöntemleri listelenmiştir.

  • string getExtension() - kazıma işleminden kaynaklanan herhangi bir dosyanın uzantısını alır.
  • string getFilename() - kazıma işleminden kaynaklanan herhangi bir dosyanın dosya adını alır.
  • object toJSON() - kazıma işleminden kaynaklanan herhangi bir JSON dosyasını dönüştürür into bir nesne.
  • string toString() - kazıma işleminden kaynaklanan herhangi bir dosyayı dönüştürür. string.
  • SimpleXMLElement toXML() - Sıyırma işleminden kaynaklanan herhangi bir XML dosyasını bir XML Öğesine dönüştürür.
  • boolean save($path) - saveHerhangi bir dosya sıyırıcıdan kaynaklanırsa başarılı olursa true değerini döndürür.

Hata ayıklama

PHP işleyicinizi hata ayıklamanın en iyi yolu, bir sıyrık için sonuçları indirmektir. web notları sayfa. Sonra save ulaşılabilir bir yerde sorun yaşadığınız dosya. Bu dosyanın yolu daha sonra ScrapeResult sınıfının yapıcısına iletilebilir. Bu, aşağıda gösterildiği gibi her seferinde yeni bir kazıma yapmak zorunda kalmadan işleyicinizi hata ayıklamanızı sağlar.

$scrapeResult = new \GrabzIt\Scraper\ScrapeResult("data.json");

//the rest of your handler code remains the same

Kazıma Kontrolü

GrabzIt'ın Web Scraper API'sı ile bir sıyrığın durumunu değiştirebilirsiniz. Uzaktan kazıyarak, durdurarak, gerektiğinde kazıma işlemini etkinleştirerek veya devre dışı bırakarak. Bu, aşağıdaki örnekte gösterilmiştir. Sıyırma kimliğini istenen sıyırma durumu ile birlikte geçirerek SetScrapeStatus yöntemi.

$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.aspx");
}
//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);
}

GrabzItScrapeClient Yöntem ve Özellikleri

Aşağıda listelenenler, web hurdalarını kontrol etmek için kullanılabilecek GrabzItScrapeClient sınıfının tüm metod ve özellikleridir.

  • GrabzItScrape[] GetScrapes() - tüm kullanıcı notlarını bir GrabzItScrape nesnesi dizisi olarak döndürür.
  • GrabzItScrape GetScrape($id) - istenen sıyırıcıyı temsil eden bir GrabzItScrape nesnesi döndürür.
  • SetScrapeProperty($id, $property) - ayarlar kazıma özelliği ve başarılı olursa true değerini döndürür.
  • SetScrapeStatus($id, $status) - Bir sıyrığın durumunu ("Başlat", "Durdur", "Etkin", "Devre Dışı") ayarlar ve başarılı olursa true değerini döndürür.
  • SendResult($id, $resultId) - Bir sıyrığın sonucunu tekrar gönderir ve başarılı olursa doğru döner.
    • Kazıma kimliği ve sonuç kimliği GetScrape yönteminden bulunabilir.
  • SetLocalProxy($proxyUrl) - tüm istekler için kullanılacak yerel proxy sunucusunu ayarlar.