Xpath Nedir? Ne İşe Yarar? | Boosted Craft
Back

Xpath Nedir?

xpath nedir

XPath, web geliştirme alanında veri madenciliği ve web scraping gibi süreçlerde kullanılan oldukça güçlü bir araçtır. XML ve HTML belgelerinde belirli öğelere erişim sağlamak amacıyla kullanılan benzersiz bir dil ve yol ifadesi sistemidir. Bu araç, web geliştiricileri tarafından veri çekme, içerik analizi ve otomasyon gibi çeşitli alanlarda etkili bir şekilde kullanılabilir. W3C tarafından geliştirilen XPath standardı, XML içinde belirli parçaların seçilmesi ve sorgulanması için tasarlanmış olup web geliştiricileri arasında geniş kabul görmektedir.

XPath, web sayfalarında bulunan öğelerin hızlı ve etkili bir şekilde tanımlanmasına yardımcı olur. Belirli bir elemana veya eleman grubuna benzersiz şekilde erişme olanağı sağlayan bu dil, web scraping projelerinin daha düzenli ve güvenilir hale gelmesine destek olur. XPath’in esnek yapısı ve geniş kullanım alanı, çeşitli projelerde ve senaryolarda kolayca uygulanabilme avantajı sunar.

XPath; veri madenciliği, web scraping, otomasyon ve test senaryoları gibi çeşitli alanlarda yaygın bir şekilde tercih edilen bir araçtır. Örnek vermek gerekirse; web geliştiricileri, e-ticaret sitelerindeki ürün fiyatlarını çekmek veya belirli bir sayfadaki içeriği analiz etmek için XPath kullanımına başvurabilir.

XPath, web geliştirme dünyasında benzersiz bir araç olarak kabul görmektedir. Web sayfalarındaki verilere son derece hassas ve hızlı bir şekilde erişim imkanı veren bu güçlü dil, web geliştiricilerinin vazgeçilmez yardımcısıdır. XPath kullanımı, projelerin hem daha güvenli hem de daha verimli bir şekilde tamamlanmasına olanak tanır, böylece geliştiricilere önemli ölçüde zaman tasarrufu sağlar.

XPath, veri kazıma alanında oldukça yetenekli ve pratik bir sorgu dilidir. Python ve JavaScript gibi programlama dillerine kıyasla veri çekmeyi daha basit hale getirir. Bu sayede, bir web sayfasında ihtiyaç duyulan bilgilere hızla ulaşmak mümkündür. XML gibi karmaşık yapılı bir dilde kolayca gezinebilmek için tasarlanmış olan bu araç, sadece XML değil, aynı zamanda HTML içerisindeki tüm verileri de kullanıcıların hizmetine sunar.

XPath Türleri Nelerdir?

Temel XML kavramlarından biri olan XPath, Python ve JavaScript gibi pek çok programlama dili içerisinde kullanılabilir.  

Absolute XPath

Absolute XPath, bir web sayfasındaki belirli bir elemana tam ve kesin yol sağlayan bir tür XPath ifadesidir. Root elemandan (genellikle `<html>` etiketi) başlayarak hedeflenen elemana kadar olan hiyerarşiyi tam olarak belirtir. Bu yol, web sayfasının yapısına ve elemanların yerleşimine bağlı olarak değişebilir. Genellikle daha spesifik ve doğrudan bir yaklaşım gerektiren durumlarda kullanılır. Örneğin, bir form içindeki belirli bir giriş kutusuna veya tablodaki belirli bir hücreye erişmek için kullanılabilir. 

Absolute XPath ifadeleri genellikle daha güçsüz olabilir. Çünkü sayfa yapısındaki küçük değişiklikler XPath ifadesini geçersiz kılabilir. Bu nedenle, tercih edilirlik durumu test senaryosuna, web sayfasının dinamik yapısına ve bakım gereksinimlerine göre dikkatlice değerlendirilmelidir. Sonuç olarak, Absolute XPath kullanımı, kesin ve sabit bir yol gerektiğinde faydalıdır. Ancak değişikliklere karşı hassasiyetini göz önünde bulundurmak önemlidir.

Aşağıda yer alan örneklerde olduğu gibi Absolute XPath ifadeleri root elementinden başlayarak hedeflenen elemana tam yol sağlar. Bu şekilde belirtilen XPath ifadeleri, belirli bir web sayfasındaki benzersiz öğelere doğrudan erişim sağlar.

  • Sayfa başlığı XPath: `/html/body/div[1]/h1`
  • Ana menü bağlantısı XPath: `/html/body/div/header/nav/a[1]`
  • Ürün fiyatı XPath: `/html/body/div/main/section/div[2]/div/span`

Relative XPath

Relative XPath, bir web sayfasındaki belirli bir elemana, o elemanın bulunduğu bağlamdan hareketle yol sağlayan bir tür XPath ifadesidir. Root elemandan ziyade mevcut konumdan hedeflenen elemana kadar olan yolu belirtir. Bu tür XPath ifadeleri genellikle daha esnek ve genel kullanıma sahiptir. Çünkü belirli bir konuma bağımlı olmaksızın elemanlara erişim sağlar. Sayfa yapısındaki değişikliklere daha iyi uyum sağlayabilir ve test senaryolarında daha kararlı bir şekilde kullanılabilir.

Örneğin, bir web sayfasında bir butona tıklamak istiyorsanız ve bu butonun yeri sayfa yapısında zaman zaman değişebiliyorsa; Relative XPath ile bu butona ulaşmak daha güvenilir olabilir. Ayrıca, dinamik web uygulamalarında, elemanların sürekli olarak değiştiği durumlarda, Relative XPath kullanımı, elemanları belirlemek ve test senaryolarını yürütmek için daha uygun bir yöntem sunar. Bu, özellikle web otomasyon testlerinde, testlerin bakımını kolaylaştırır ve testlerin daha az kırılgan olmasını sağlar.

Aşağıda paylaşttığımız örneklerde olduğu gibi Relative XPath ifadeleri mevcut bağlamdan hedeflenen elemana doğru esnek bir şekilde yol sağlar. Bu tür XPath ifadeleri sayfa yapısındaki değişikliklere daha iyi uyum sağlayabilir. Böylece, belirli bir konuma bağımlı olmadan elemanlara erişim sağlamak mümkün olabilir.

  • İlk bülten bağlantısı XPath: `//div[@class=‘newsletter’]/ul/li[1]/a`
  • Ürün listesi bağlantısı XPath: `//div[@class=’products’]/div/div/a`
  • Anasayfa slider elemanı XPath: `//div[@id=’slider’]/div[@class=’slide’][1]`
xpath türleri

XPath’in Temel Kavramları Nelerdir?

XPath kullanımı sırasında karşınıza çıkabilecek temel kavramlar aşağıda sıralanmıştır.

Node (Düğüm)

XPath ifadelerinde node yani düğüm temel yapı taşlarından biridir. Bir XML belgesinde ya da HTML dokümanında her eleman, bir node olarak adlandırılır. Element nodes, XML veya HTML belgesindeki etiketleri temsil eder. Örneğin, `<div>`, `<p>`, `<a>` gibi elementler birer element node’dur. Text nodes ise metinsel içeriği temsil eder. Örneğin, bir elementin içindeki metinsel değerler text node olarak adlandırılır.

Node’lar, XPath ifadelerinde belirli elementlere erişmek, filtrelemek veya işlem yapmak amacıyla kullanılır. XPath ile belirli bir node’a erişmek için doğru yol ifadesi (path expression) kullanılmalıdır. Ancak bu sayede belirlenmiş olan node’a ulaşmak mümkün olur. Bu kavramlar, XPath’in XML veya HTML dokümanları üzerinde hedeflenen elementlere erişiminde temel bir role sahiptir.

Attribute

Attribute, bir XML veya HTML belgesindeki elementlere atanmış olan özellikleri temsil eder. Bu özellikler elementlerin niteliklerini belirtir ve genellikle key-value çiftleri olarak tanımlanır. Örnek olarak, bir `<a>` (link) elementinin `href` özniteliği, o linkin hedef URL’sini belirtir.

XPath’te özniteliklere erişmek için kullanılan syntax (sözdizimi) şu şekildedir:

“`plaintext element[@attribute=‘value’] “`

Bu kapsamda; `element` belirli bir elementi temsil ederken, `attribute` o elementin özniteliğini ve `value` ise bu özniteliğin değerini ifade eder. Örneğin, bir `<img>` elementinin `alt` özniteliğine erişmek için kullanılabilecek XPath ifadesi şu şekildedir:

“`plaintext //img[@alt=’Örnek Resim’] “`

Bu XPath ifadesi kullanılarak `alt` özniteliği değeri “Örnek Resim” olan tüm `<img>` elementlerine erişilebilir. Öznitelikler, XPath’in belirli elementlere daha spesifik bir şekilde erişim sağlayabilmesine ve belirli özelliklere sahip elementleri filtreleyebilmesine yardımcı olur.

Parent

XPath ifadelerinde belirli bir elementin üst ya da üzerinde bulunan doğrudan bir üst elemanı ifade eder. Parent kavramı, belirli bir elementin hiyerarşik olarak üstünde yer alan elemente erişimi sağlar. XPath’te parent ebeveyni temsil etmek için `..` sembolü kullanılır. Parent kavramı, XPath’in belirli bir elementin konumunu veya ilişkisini belirlemesi sürecinde son derece önemli bir rol üstlenerek hiyerarşik yapılar içerisinde kolayca gezinmeyi sağlar.

Child

Child, XPath ifadelerinde belirli bir Parent elementin içinde yer alan ve aynı seyiyeye sahip diğer elementleri ifade eder. Child kavramı, belirli bir elementin hiyerarşik olarak altındaki doğrudan bir alt elemana erişimi sağlar.

Çağrı Şahin
Çağrı Şahin
Akdeniz Üniversitesi Bilgisayar Programcılığı ve Anadolu Üniversitesi Yönetim Bilişim Sistemleri bölümlerinde eğitimlerimi tamamlayarak mezun oldum. SEO (Arama Motoru Optimizasyonu) alanındaki çalışmalarıma 2018 yılında “JR.” olarak başladım. Zaman içerisinde SEO Specialist, SR. SEO Specialist, SEO Team Lead, SEO Executive ve nihayetinde COO (Chief Operations Officer) unvanlarını kazandım. Bu süreçte web tasarımı, sosyal medya reklamcılığı ve yönetimi, SEO, Google Ads, medya satın alma ve itibar yönetiminin de aralarında bulunduğu son derece geniş bir yelpazede dijital pazarlama deneyimi kazandım. Kariyerime başladığım günden bu yana 200’den fazla proje üzerinde çalıştım. Her proje özelinde geliştirdiğim dijital pazarlama stratejileri ve SEO odaklı çalışmalar ile her projeye katkı sağlayarak başarılı sonuçlar elde etmelerine yardımcı oldum.

Yorum Yapın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Bu site, istenmeyenleri azaltmak için Akismet kullanıyor. Yorum verilerinizin nasıl işlendiği hakkında daha fazla bilgi edinin.

Size en iyi deneyimi sunmak için, Web sitemizde çerezleri kullanıyoruz.

Gönder
Merhaba, size nasıl yardımcı olabiliriz?