Google Sheets ile Meta Tag, HTTP Headers, Status Code Kontrolü (IMPORTXML & SCRIPT EDITOR)

No Comments

Photo of author

By Şuayip Can Ormanyaran

Google Sheets, sadece bir excel değil aynı zamanda güçlü bir SEO aracıdır. Bu program ile bir URL’in status code’unu, meta tag’lerini ve HTTP üst bilgilerini çekmek gibi pek çok güzel şey yapabilirsiniz.

Hızlıca bir Sheets dökümanı açmak için tarayıcıya sheets.new yazabilirsiniz. Bu sayede Google Drive’da otomatik olarak bir dosya açılacaktır.

IMPORTXML Kullanımı (Google Sheets ile Scraping)

Google Sheets’e Meta Title ve Description Çekmek

Bu işlem için öncelikle IMPORTXML formülüne ihtiyacımız var. Xpath mantığı ile çalışır.

=IMPORTXML(“https://canormanyaran.com”; “//title”)

Yukarıdaki kodda ilk tırnak içerisine URL, ikinci tırnakta ise XPath eklenmelidir. URL yerine A1 gibi hücre seçimi de yapabilirsiniz. Bu sayede birçok URL’i anlık takip edebilirsiniz. Sayfayı yenilediğinizde ya da URL’i silip tekrar yapıştırdığınızda güncel veriyi çekecektir.

Kullanışlı IMPORTXML Kodları:

GörevKod
Meta Title=IMPORTXML(A2,”//title”)
Meta Description=IMPORTXML(A2,”//meta[@name=’description’]/@content”)
H1 (Tümü)//h1
Sayfadaki Tüm Linkleri Getir//@href
Canonical//link[@rel=’canonical’]/@href
Hreflang//*[@hreflang]
Göreceğiniz üzere Xpath’ler ile sayfadaki tüm elementleri çekebiliyorsunuz. Yani Google Sheets ile scraping yapabilirsiniz.

IMPORTXML ile Scraping Yapmak – Anlık Stok Durumu Kontrolü

Yukarıdaki görselde göreceğiniz üzere örnek olarak seçtiğim Trendyol.com’dan bir stok kontrolü yaptım.

İlk kodda sepete ekle butonunun XPath’ini ekleyerek içerisindeki yazıyı çektim ancak bu durum tasarımı ve XPath’i farklı olan stok dışı ürünler için N/A sonucu getirecekti. Stok dışı ürünler için tekrar bir Xpath bulmak gerekiyor. Veya alternatif olarak:

  • =IMPORTXML(A1,”//text() = ‘Tükendi'”)
  • =IMPORTXML(A1,”//text() = ‘Sepete Ekle'”)

Yukarıdaki iki kod sayfada “Tükendi” veya “Sepete Ekle” yazılarını tarayıp varsa True yoksa False olarak sonuç veriyor. Hangisi daha kullanışlı geliyorsa onu kullanabilirsiniz.

Kısaca E-Ticaret sitesinin site haritasını çekerek tüm listedeki ürünlerin gerçek zamanlı stok bilgisini Google Sheets’te görebilirsiniz.

Scraping olayı ile ilgili talep gelirse daha detaylı bir yazı hazırlayabilirim. Şimdi HTTP Headers ve Status Code kısmına geçelim.

Google Sheets ile HTTP Header ve Status Code Bilgisi Çekme

Bu kısım biraz kodlama bilgisi gerektiriyor. Ama sizi bununla yormayıp direkt kodu aşağıda paylaşıyorum.

function HTTPResponse( uri )
{
 var response_code ;
try {
 response_code = UrlFetchApp .fetch( uri ) .getResponseCode() .toString() ;
 }
catch( error ) {
 response_code = error .toString() .match( / returned code (\d\d\d)\./ )[1] ;
 }
finally {
 return response_code ;
 }
}


async function CacheControl(url) {
  let response = UrlFetchApp.fetch( url ).getAllHeaders()
  //JSON.stringify() <- bUNU obJECT OBJECT OLUNCA GÖRMEK İÇİN
  return response["Cache-Control"].toString();
}
async function ContentType(url) {
  let response = UrlFetchApp.fetch( url ).getAllHeaders()
  //JSON.stringify() <- bUNU obJECT OBJECT OLUNCA GÖRMEK İÇİN
  return response["Content-Type"].toString();
}
async function Date2(url) {
  let response = UrlFetchApp.fetch( url ).getAllHeaders()
  //JSON.stringify() <- bUNU obJECT OBJECT OLUNCA GÖRMEK İÇİN
  return response["Date"].toString();
}
async function LastModified(url) {
  let response = UrlFetchApp.fetch( url ).getAllHeaders()
  //JSON.stringify() <- bUNU obJECT OBJECT OLUNCA GÖRMEK İÇİN
  return response["Last-Modified"].toString();
}

Mükemmel bir kod olmayabilir ancak çalışıyor :), Yukarıdaki kodu Sheets’te üst menüdeki Tools içerisinden Script Editor alanına yazıp çalıştırıyoruz.

Sonrasında aşağıdaki gibi bir görüntü elde etmek için ilk sütuna URL’leri, sonrasına kodları girebilirsiniz:

Bilgileri çekmek için aşağıdaki tablodaki formülleri uygulayabilirsiniz:

GörevFormül
Response Code / Status Code=HTTPResponse(A2)
Cache-Control=CacheControl(A2)
Content-Type=ContentType(A2)
Date=Date2(A2)
Last Modified=LastModified(A2)
HTTP Header & Status Code Formülleri

Yorum yapın