Xpath Nedir?

Xpath
İçindekiler

 

XPath, web geliştirme dünyasın veri madenciliği ve web scraping gibi süreçlerde kullanılmakta olan son derece güçlü bir araçtır. XML ve HTML dokümanlarında belirli elemanlara erişim sağlamak için kullanılan bir dil ve yol ifadesi sistemi olarak tanımlanan benzersiz araç; web geliştiricileri tarafından veri çekme, içerik analizi ve otomasyon gibi pek çok farklı alanda etkili bir şekilde kullanılabilir. W3C tarafından XML içerisinde yer alan belirli kısımların seçilmesi ve sorgulanması amacıyla geliştirilmiş olan XPath standardı, web geliştiricileri tarafından yaygın bir şekilde benimsenmiştir.

 

XPath, web sayfalarındaki öğelerin hızlı ve etkili bir şekilde belirlenmesine yardımcı olur. Belirli bir elemana ya da eleman grubuna benzersiz bir şekilde erişme imkanı sunan bu dil, web scraping projelerinin daha düzenli ve güvenilir hale gelmesine katkıda bulunur. XPath’in esnekliği ve geniş kullanım alanı, farklı projelerde ve senaryolarda uygulanabilir olması avantajını sağlar.

 

XPath veri madenciliği, web scraping, otomasyon ve test senaryoları gibi birçok alanda yaygın bir şekilde kullanılır. Örneğin web geliştiricileri, e-ticaret sitesindeki ürünlerin fiyatlarını çekmek ya da belirli bir sayfadaki içeriği analiz etmek için XPath kullanmayı tercih edebilir.

 

Geldiğimiz noktada, XPath, web geliştirme dünyasında altın anahtarlardan biri olarak kabul edilir. Son derece güçlü bir dil olarak web sayfalarındaki verilere hızlı ve hassas bir şekilde erişmeyi sağlar. Böylece web geliştiricilerine zaman kazandırarak projelerinin daha güvenli hale gelmesine yardımcı olur. 

 

Son derece kullanışlı bir tür sorgu dili olan XPath, veri kazıma konusunda çok başarılıdır. XPath, Python ve JavaScript gibi programlama dillerine göre daha kolay veri çekmeyi sağlar. Bu sayede, sayfada ihtiyaç duyulan bilgilere saniyeler içerisinde erişilebilir. XML gibi karmaşık bir dilin içinde kolayca dolaşmak için oluşturulmuş bu kısayol, yalnızca XML içerisinde değil aynı zamanda HTML içerisinde de istenen tüm verileri kullanıcılara sunar. 

 

XPath Türleri Nelerdir?

 

XPath temel XML kavramlarından biri olup Java, Python ve JavaScript gibi pek çok programlama dili içerisinde kullanılabilir. XPath türleri ise şu şekilde sıralanabilir:

 

Absolute XPath: Öğeyi bulmanın doğrudan yolu olmasına karşın Absolute XPath, öğenin yolunda herhangi bir değişiklik yapılması durumunda XPath’in başarısız olması gibi bir dezavantaja sahiptir. İstenen öğenin yolunun bulunması için Devtools üzerinden copy full XPath kullanılabilir. /html/body/div[3] bir absolute XPath örneği olarak paylaşılabilir.

 

Relative XPath: Bu XPath yöntemiyle öğenin DOM içerisinde her yerde aranması mümkündür. Web site mimarisinde oluşabilecek değişiklikler için herhangi bir öğenin test edilmesi aşamasında genellikle relative XPath kullanılması tercih edilir. Devtools üzerinden copy XPath ile sayfada bulunan herhangi bir öğenin relative XPath’ine ulaşılabilir. //*[@id=”123″]/div bir relative XPath örneği olarak paylaşılabilir.

 

XPath’in Temel Kavramları Nelerdir?

 

Düğüm (Node): XML DOM bir XML belgesini okuma ve değiştirme imkanı sunan bir bellek içi gösterimi olarak tanımlanabilir. XML belgesi içinde bulunan her bir parça düğüm ya da node olarak adlandırılır. Ancak DOM içerisindeki hiyerarşiye dikkat edilmelidir.

 

Attribute: XML dokümanı içerisinde bulunmakta olan düğümlerin class, id, href ve lang gibi özellikleri attribute olarak adlandırılır.

 

Parent: XML dokümanı içinde bulunan en üst seviye element parent element olarak adlandırılır.

 

Child: XML dolümanındaki parent elementler içinde yer alan aynı seviyeye sahip diğer elementler child elementi olarak adlandırılır.

 

Sibling: Aynı Parent altında bulunan ve aynı derinlik seviyesine sahip elementler sibling ya da kardeş element olarak adlandırılır. 

Xpath

Temel XPath Komutları Nelerdir?

Başlık Etiketleri

Crawlerlar genellikle sadece H1 ve H2 başlık etiketlerine ilişkin bilgi verir. Sayfada bulunan diğer başlık etiketleri //hx ile bulunabilir.

 

H3 başlık etiketlerini bulmak için   //h3

 

Sayfada kullanılmış olan H3 başlık etiketlerinin sayısını bulmak için  count(h3)

 

Sayfada kullanılmış olan ilk 10 H3 başlık etiketini bulmak için  /descendant::h3[position() >= 0 and position() <= 10]

 

Sayfada kullanımış olan H3 başlık etiketlerinin uzunluğunu hesaplamak için string-length(//h3) komutları kullanılabilir.

 

Hreflang Etiketleri

 

Sayfada kullanılmış olan hreflang etiketlerini bulmak için   //*[@hreflang]/@hreflang komutu kullanılabilir.

 

Yapılandırılmış Veriler

 

Sayfada yer alan yapısal verileri bulmak için  //*[@itemtype]/@itemtype komutu kullanılabilir.

 

Sosyal Medya Etiketleri

 

Sayfada yer alan Open Graph ve Twitter Card gibi sosyal medya etiketlerini bulma amacıyla aşağıdaki XPath’ler kullanılabilir:

 

//meta[starts-with(@property, ‘og:title’)]/@content

 

//meta[starts-with(@property, ‘og:description’)]/@content

 

//meta[starts-with(@property, ‘og:type’)]/@content

 

//meta[starts-with(@property, ‘og:site_name’)]/@content

 

//meta[starts-with(@property, ‘og:image’)]/@content

 

//meta[starts-with(@property, ‘og:url’)]/@content

 

//meta[starts-with(@property, ‘fb:page_id’)]/@content

 

//meta[starts-with(@property, ‘fb:admins’)]/@content

 

//meta[starts-with(@property, ‘twitter:title’)]/@content

 

//meta[starts-with(@property, ‘twitter:description’)]/@content

 

//meta[starts-with(@property, ‘twitter:account_id’)]/@content

 

//meta[starts-with(@property, ‘twitter:card’)]/@content

 

//meta[starts-with(@property, ‘twitter:image:src’)]/@content

 

//meta[starts-with(@property, ‘twitter:creator’)]/@content

 

E-mail Adresleri

 

Sayfada yer alan e-mail adreslerini bulmak için  //a[starts-with(@href, ‘mailto’)] komutu kullanılabilir.

 

iFrame

 

Sayfadaki iFrame etiketlerini bulmak için  //iframe/@src

 

Sayfadaki YouTube videolarını bulmak için  //iframe[contains(@src ,’www.youtube.com/embed/‘)]

 

Google Tag Manager dışındaki iFrame etiketlerini bulmak için  //iframe[not(contains(@src, ‘https://www.googletagmanager.com/‘))]/@src komutları kullanılabilir.

 

AMP Sayfalar

 

AMP ile sunulan sayfaları bulmak için  //head/link[@rel=‘amphtml’]/@href komutu kullanılabilir.

 

Meta Viewport Etiketi

 

Meta viewport etiketlerini bulmak için  //meta[@name=‘viewport’]/@content komutu kullanılabilir.

 

Count Kullanımı

 

Yazılan XPath’in başına “Count” ekleyerek aradığınız sonuç sayısını görüntüleyebilirsiniz.

 

Attribute Komutları

 

Sayfa içerisinde id’si “örnek” olan tüm elementleri bulmak için //*[@id=”örnek”] 

 

Sayfa içerisinde id’si “örnek” olan element sayısını bulmak için count(//*[@id=”örnek”]) 

 

Sayfa içerisinde class’ı “örnek” olan tüm elementleri bulmak için //*[@class=”örnek”] 

 

Sayfa içerisinde class’ı “örnek” olan element sayısını bulmak için count(//*[@class=”örnek”]) komutları kullanılabilir.

 

AND Kullanımı

 

XPath’te tek satırda iki kıstas belirlemek istenen durumlarda “|” sembolü kullanılabilir.

 

İşinize Yarayabilecek Diğer XPath Komutları

 

Sayfa içerisinde yer alan ve “SEO” kelimesini içeren anchor textler üzerinden hangi URL’lere link verildiğini bulmak için  //a[contains(.,’SEO’)]/@href

 

Sayfa içerisinde yer alan ve içerisinde “SEO” kelimesi geçen anchor textleri bulmak için  //a[contains(.,’SEO’)]

 

Sayfa içerisinde yer alan ve içerisinde “seo” geçen URL’lere linklenen anchor textleri bulmak için  //a[contains(@href, ‘seo’)] 

 

Sayfa içerisinde yer alan ve içerisinde “seo” geçen linkleri bulmak için  //a[contains(@href, ‘seo’)]@href komutları kullanılabilir. 

 

XPath’te büyük harf – küçük harf duyarlılığı söz konusu olduğundan “seo” ya da “SEO” araması için yukarıda yer verdiğimiz farklı komutların kullanılması gerekir. Diğer yandan sayfada yer alan ve içerisinde “seo” geçen tüm linkleri büyük harf – küçük harf duyarlılığı olamadan bulabilmek için //a[contains(translate(., ‘ABCDEFGHIJKLMNOPQRSTUVWXYZ’, ‘abcdefghijklmnopqrstuvwxyz’),’seo’)]/@href komutu kullanılabilir.

Bir yanıt yazın

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

SEO Teklifi Alın
Size özel hazırlayacağımız SEO çözümleri ile sektörünüzde rakiplerinizi geride bırakın, işletmenizi başka bir seviyeye taşıyın.