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.
İçindekiler
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örev | Kod |
---|---|
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] |
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örev | Formül |
---|---|
Response Code / Status Code | =HTTPResponse(A2) |
Cache-Control | =CacheControl(A2) |
Content-Type | =ContentType(A2) |
Date | =Date2(A2) |
Last Modified | =LastModified(A2) |