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

Python için Web Kazıyıcı API'si Python Kazıyıcı API

Herşeyden önce indir Python için Web Sıyırıcı API'sine bakın ve başlamak için içindeki örnek işleyiciye bakın.

Kazınmış Veriyi İşleme

Kazınmış verileri işlemenin en kolay yolu, verilere kolayca manipüle edilmesini ve sorgulanmasını sağladığı için verilere bir JSON veya XML nesnesi olarak erişmektir. JSON, aşağıdaki genel formatta, nesne özniteliği olarak veri kümesi adıyla ve kendisi de her bir sütun adının başka bir öznitelik olarak bulunduğu bir dizi nesnesi içeren yapılandırılacaktır.

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

Öncelikle, işleyicinin, JSON veya XML nesnelerine dönüştürülemeyen verileri içerebilecek tüm sıyrılmış veriler gönderileceği unutulmamalıdır. Bu nedenle, aldığınız veri türünün işlenmeden önce kontrol edilmesi gerekir.

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())

Yukarıdaki örnekte, veri kümesinin tüm sonuçlarında nasıl döngü geçirileceği gösterilmiştir Dataset_Name ve değerine bağlı olarak belirli işlemler 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 sunucusundan kaynaklandığından emin olmaya çalışsa da, dosyaların uzantısı da önceden denetlenmelidir. 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.
  • xml.etree.ElementTree 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

Python işleyicinizi hata ayıklamanın en iyi yolu, bir sıyrık için sonuçları indirmektir. web notları sayfa, save Sorunlu bir konuma sahip olduğunuz bir dosyaya gidin ve o dosyanın yolunu ScrapeResult sınıfının yapıcısına iletin. 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 = ScrapeResult.ScrapeResult("data.json");

#the rest of your handler code remains the same

Kazıma Kontrolü

GrabzIt'ın Python için Web Kazıyıcı API'si ile gerektiği şekilde bir kazıma işlemini uzaktan başlatabilir, durdurabilir, etkinleştirebilir veya devre dışı bırakabilirsiniz. Bu, aşağıdaki örnekte gösterilen sıyrık kimliği ile birlikte yeni sıyırıcı durumuna geçildi SetScrapeStatus yöntemi.

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

GrabzItScrapeClient Yöntem ve Özellikleri

Aşağıda, durum sıyrıklarını kontrol etmek için kullanılabilecek GrabzItScrapeClient sınıfının tüm yöntemleri ve özellikleri listelenmiştir.

  • GrabzItScrape[] GetScrapes() - tüm kullanıcı notlarını bir GrabzItScrape nesnesi dizisi olarak döndürür.
  • GrabzItScrape GetScrapes(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 isteklerde kullanılacak yerel proxy sunucusunu ayarlar.