Bir önceki yazımda bahsettiğim Scraper eklentisini şimdi detaylı olarak inceleyeceğiz.
Öncelikle bu eklentiyi nasıl işlerde kullanbileceğinizden bahsedeyim.
- Bir web sayfasındaki medyaların (resim,video vs.) hepsini indirmek istiyorsunuz ve linklerine ihtiyacınız var.
- Kendini tekrar eden, html yapısına sahip sayfalardan içerik çıkartmaya çalışıyorsunuz
- Haber sitelerinde araştırma yapıyorsunuz ve bir anahtar kelimeye sahip tüm yazıları istiyorsunuz
- Bir konferansa konuşmacı olacak katılımcıların listesini indirmek, her konuşmacının detayını kaydetmek istiyorsunuz.
- Bu örnekler özel amaçlara göre çoğaltılabilir.
Ön Hazırlık
- XPath hakkında bilginiz yoksa buradan kısa bir bilgi alabilirsiniz. Gözünüz korkmasın oldukça basittir.
- Scraper eklentisini buradan indirin, otomatik olarak kurulacaktır Chrome tarayıcınıza.
Normalde Scraper eklentisi Google Docs ile entegre çalışan bir araç. Ancak Docs kullanmadan da klasik copy paste ile çektiğiniz bilgiler alabilirsiniz. Ancak Docs’a aktarma seçeneği ile daha derli toplu bir çalışmaya sahip olur ve sonra Excel olarak indirebilirsiniz dilerseniz. Tercih sizin, ben Docs’u karıştırmadan anlatacağım.
Örnek olarak TBMM sayfasından milletvekilleri listesini indirmek istiyorum.
1- Bir milletvekili adının üzerine sağ tık yapıp, scrap similar’a tıklıyorum
2- Sol tarafta Selector sekmesinde //td/a şeklinde bir Xpath adresi çıkıyor. Bu birbiri içerisine geçmiş olarak bulunan HTML elementlerinden sizin ihtiyacınız olanın adresidir. Şu durumda vekillerin adlarını ve linklerini otomatik olarak getirmiş durumda Scraper. Ancak biz daha detaylı bilgi istiyor ve farklı verileri de istiyoruz. Örneğin hangi partiden olduklarını da bir kolonda kaydetmek istiyoruz.
3- Html elementlerinin yerlerini keşfetmek için Chrome’da CTRL + I kombinasyonu ile Inspection Tool’u açıp kodu inceleyebilirsiniz. Hatta istediğiniz elementin kodunun üzerine sağ tıklayıp Copy XPath derseniz size direk olarak Xpath’ini bile verebilir. Şimdi //td/a ‘nın sonundaki /a ‘yı silin bakın ne oldu. Artık sadece il,parti ve vekil isimlerini içeren tek bir kolonumuz var. İhtiyacımız olan tüm bilgiler bu kolonda. Peki ama bu kolonu nasıl ayrı kolonlara böleceğiz ?
4- //td[0] //td[1] //td[2] yazarak denemeler yapın ve Xpath işleyişini anlamaya çalışın. “0” yazdığınızda hiç bir şey gelmedi, “1” yazdığınızda vekil kolonu, [2]’de ise parti kolonu geldi. Kodun başındaki // tüm belge anlamına gelir. Biz kök olarak bütün bilgilerin olduğu kolonu almak onu parçalara bölmek istiyoruz o yüzden Xpath Kutucuğuna //tr yazıyoruz.
5- Columns kısmında Xpath olarak ./td[1]/a yazıyor ve belirttiğimiz td içindeki tüm <a> tagine sahip elementleri çekmiş oluyoruz. Kolon adı olarak “Vekil Adı Soyadı” diyoruz. Böylece tüm vekillerin ad soyadlarını bir kolonda tutmuş olduk.
6- Şimdi ise partilerini yazacağız ikinci kolona. “./td[2] yazarsak parti adları hemen vekillerin yan kolonuna gelir. Kolon adına “Parti” diyoruz. Ve sonuç :
7- Bundan sonra bu veriyle ne yapacağınız size kalmış dilerseniz “Export to Google Docs” butonuna tıklayın isterseniz sayfayı seçip copy paste yapın istediğiniz yere.
Basit bir scraping örneği yapmış olduk yukarıda. Bunun çok daha kompleks örnekleri yapılabilir elbette.
Neden sayfayı açıp da direk kopyala yapıştır yapmadık diye sormuş olabilirsiniz ancak böyle 120 tane sayfayı kaydettiğinizi düşünün , ne kadar çok zaman alır ve ne sıkıcı bir iş…
- Bu yarattığınız Xpath template’ini Presetes kısmından kaydedebilir tekrar kullanabilirsiniz sonra.
Sonraki yazımda Open Refine ile bu listedeki milletvekillerinin detaylarını indirmeyi göstereceğim.