Veri gazetecisi olabilecekler için beş veri kazıma aracı
Çeviren: Oğuzhan Okutan
Kaynak: Shelly Tan / Northwestern University Knight Lab
http://knightlab.northwestern.edu/2014/03/20/five-data-scraping-tools-for-would-be-data-journalists/
Shelly Tan
Geçen sonbaharda, genellikle görsel etkileşim tasarımcısı olarak çalışarak, NPR News Apps (NPR Haber Uygulamaları) ekibi ile bazı projeleri kodlamak amacıyla vakit geçirdim. Ama son beş ayda gazete makaleleri ve Twitter API ‘lerini kazımayla alakalı bir proje geliştiriyordum.
Python’a görece yeni başlamıştım, başkalarıyla birlikte çalışıp bazı temel programlar kodladım, ancak çok da komplike değillerdi. Ağ (web) kazıma ve veri parselleme becerilerim için daha derinlikli bir bilgiye sahip olmamın gerekliliğini biliyordum. Bu nedenle yardım için web’e başvurdum. Bu yolda, bilgimi daha da geliştirebilmem için fazlasıyla faydalı olan birkaç araç buldum. Dolayısıyla eğer siz de veri kazıma işine yeni başlıyorsanız, aşağıda projemde çalışırken öğrendiğim ve bana en faydalı olan işlevsel araçlardan 5 tanesini bulabilirsiniz.
- Scraper (Kazıyıcı)
Chrome’un bedava bir eklentisi olan Scraper, İnternet sitelerinden sade bir metin almak istediğinizde kullanışlı ve kullanımı kolay olan bir araç. İndirdikten ve yükledikten sonra, İnternet sitesinden kazımak istediğiniz bölümü işaretleyip sonra da ‘Benzerini Kazı’yı (Scrape Similar) seçmeniz yeterli. İşte bu kadarlık bir çaba sonunda, işaretlediğiniz şeyin benzeri bir bilgiyi içeren ve Google belgelerine (Google Docs) aktarılmaya hazır bir pencere açılacaktır.
Scraper, en çok sade metinleri çıkartmakta işe yarar, bu nedenle imgeleri ya da daha komplike nesneleri kazıyabilmeyi beklemeyin. Ayrıca çok uzun metinlerde de mükemmel bir performans ortaya koymaz ancak yeni başlayan biri için kullanımı kolay ve hızlıdır. Sayfaların hangi yapılarının kazınacağını belirlerken XPath aracının kullanıldığına dikkat çekmek isterim, gerçi son zamanlarda jQuery ayırıcıları da sisteme dahil edilmiştir. Bu bilgiye sahip olmadan da işinizi görebilirsiniz, fakat bu kod hakkında yeterli bir kavrayışa sahip olmanız yararınıza olacaktır.
- Outwit Hub
Outwit Hub da Firefox’un bedava bir tarayıcı eklentisi. Hem ileri düzeydeki hem de yeni başlayan kullanıcıların işine yarayabildiği için bu ürün bedava olan kazıyıcılar içinde oldukça önemli bir yere sahiptir. Daha tecrübeli olan kullanıcılar aktarmak istedikleri şeyi daha belirgin bir şekilde bulabilirler, ancak yeni başlayan kullanıcılar da kolayca herhangi bir sayfada sıralanmış olan PDF’leri, imgeleri ya da belgeleri indirme seçeneklerini kullanabilirler.
Ayrıca kazınmış veriyi görsel bir sunum halinde geri aktarır, böylelikle kodlama hakkında bilgisi olmayanlar da neyin aktarıldığını anlamakta zorlanmaz. Çıkartılmış veriler birçok değişik formatlara aktarılabilir ve imgeler/belgeler sabit diskinizde saklanabilir. Ayrıca daha fazla yardıma ihityacı olanlar için de çevrimiçi öğretici programları vardır.
- Scraperwiki
Scraperwiki kısa bir süre önce platformunu güncelledi. Tecrübeli kodlayıcıların tarayıcı içinde kodlarını çalıştırmalarına izin verirken, başlangıç seviyesindeki kodlayıcılar için de özel ayarlara ve önceden hazırlanmış araçlara yöneldiler. (Örnek olarak scrape twitter için önceden hazırlanmış araçlar).
Bu araçlar herhangi bir kodlama bilgisine sahip değilseniz oldukça işinize yarayabilir, ancak tam ortada bir süreçteyseniz ne yapacağız diye sorabilirsiniz. Daha önce kodlama yapmış olabilirsiniz ancak yine de kendi kazıyıcınızı kodlarken yardıma ihtiyaç duyabilirsiniz. İşte bu noktada klasik Scraperwiki devreye giriyor.
Klasik Scraperwiki size başkalarının yazdığı kazıyıcıları arama seçeneğini sunuyor, böylece fazla zaman kaybetmeden sizi istediğiniz veriye yönlendirilebiliyor ve kazıyıcılara ulaşma imkanınız oluyor. Ancak bu arşiv size en çok başkalarının nasıl kod oluşturduğunu somut bir şekilde görmek istediğinizde yardımcı oluyor. Kendi kazımanızı nasıl yapmanız gerektiğini ve bir gün baştan kendi kodunuzu nasıl yaratabileceğinizi gösteren önemli bir kaynak.
- BeautifulSoup
Python için bir çözümleme kütüphanesi olan BeautifulSoup daha önceki seçeneklerden ziyade kodların derinlemesine araştırılmasına daha çok yönlendiriyor. Ama bunu gezinme, arama, dikkatle inceleme ve son olarak dosya ayıklama araçlarında açık ve kolayca anlaşılabilir metodlarla yapıyor. Belirli bir veriye ulaşmak için çok fazla kodlama bilgisine ihtiyaç duyulmuyor ve yüklenme süreci oldukça hızlı. Komut şeridini kullanmanız gerekiyor. Daha önce terminalinizi hiç kullanmadıysanız, korkmanıza gerek yok! Aşağıda nasıl yapılacağını gösteriyorum. Python’u halihazırda yüklediğinizi varsayıyorum. Öncelikle Python için neredeyse bir app store gibi iş gören pip’i yükleyeceğiz. Sonrasında terminali açıp şunu yazacağız
$ sudo easy_install pip
Enter’a basın. Ve işte! Pip’İn yüklenmiş olması gerekir. Sonra da, BeautifulSoup’u pip’le indirin:
$pip install beautifulsoup4
BeautifulSoup, nihai olarak verili URL’den içerik getirirken iyi bir iş çıkarıyor ve size fazla zorluk çıkarmadan verileri çözümlemenize olanak sağlıyor. Bütün bunlara başlarken ortalama bir Python bilgisine sahip olmanız gerekli olabilir, ancak hazırda bulunan araçlardan yola çıkmayı ve tümüyle sizin istediğinizi kavrayan bir kod yaratmak istiyorsanız, BeautifulSoup iyi bir başlangıç noktası.
- Scrapy
BeautifulSoup’la benzer bir şekilde Scrapy de kendi kodunuzu yazmanıza daha fazla odaklanıyor. Bununla birlikte Scrapy daha sağlam ve büyük çaplı bir ağ örümceği ya da bir ağ kazıyıcısı olarak hareket ediyor. Diğer bir tarafta da elle sonsuz bir döngü kurmadığınız takdirde, BeautifulSoup sizin atanmış URL’niz tarafında sınırlanabilir.
Scrapy, BeautifulSoup gibi pip aracılığıyla yüklenebilen bir Python paketidir:
$ pip install Scrapy
Kanımca, Scrapy’nin öğrenme süreci BeautifSoup’tan daha zorlu, ancak daha fazla özelliğe sahip. Örneğin komple bir çalışma alanı olduğu için komple evrensel kodlar, yeniden yönlendirmeler, işleme vb. şeylere sahip. Ayrıca inanılmaz derecede ayrıntılı belgeleme sistemi var. Bu noktadan hareketle kodlama becerilerinizi biraz daha ilerletmek istiyorsanız, Scrapy’le çok şey başarabilirsiniz.
Artık bu araçlara sahip olduğunuza göre, ilginç bulduğunuz bir şeyde İnternet’i kazmaya başlayabilirsiniz. Amacınız ister Google doc’a bilgi yüklemek için kolay bir yol bulmak olsun, ister verileri kendi kendinize işlemek olsun, her zaman size yardımcı olabilecek bir araç bulabilirsiniz. İyi eğlenceler, veri ve paylaşım gazetecileri!
Kaynak çeviri: http://knightlab.northwestern.edu/2014/03/20/five-data-scraping-tools-for-would-be-data-journalists/