Node.js ve Puppeteer | XPATH #2
İlk konuda Puppeteer ile temel başlangıcı yapmış ve bazı temel işlemleri nasıl gerçekleştirebileceğimizi göstermiştik. Şimdi bu konuyu biraz daha derinleştirip XPath kullanarak veri kazıma işlemlerini detaylı bir şekilde ele alacağız.
İlk konuda Puppeteer ile temel başlangıcı yapmış ve bazı temel işlemleri nasıl gerçekleştirebileceğimizi göstermiştik. Şimdi bu konuyu biraz daha derinleştirip XPath kullanarak veri kazıma işlemlerini detaylı bir şekilde ele alacağız.
XPath Nedir?
XPath, XML veya HTML belgelerinde belirli öğeleri bulmak için kullanılan bir sorgulama dilidir. Puppeteer ile kullanıldığında bir çok şeyde işimize yaramaktadır.
Örnek: Form xpathları sayesinde bir kayıt forumunu doldurabiliriz.
XPATH İfadeleri: /, //, [], @, text() / //div[@class='example']
Örnek: Form xpathları sayesinde bir kayıt forumunu doldurabiliriz.
XPATH İfadeleri: /, //, [], @, text() / //div[@class='example']
XPath Kullanımı ve Detaylar
Örnek olarak deneme.js dosyası oluşturdum ve onun içinde işlem yapacağız.
JavaScript:
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto('https://instagram.com');
await browser.close();
})();
Yazdığımız kodların 1. bölümde ne işe yaradıklarını anlatmıştık.
Şimdi await page.goto('https://instagram.com'); ve await browser.close(); arasına kodlarımızı yazacağız.
Örnek olarak ınstagram platformu üzerinde işlem yapacağız.
Kullanıcı adı ve Şifre bölümünün XPATH değerlerini alalım.
1. Kullanıcı adı formuna sağ tıklayın ve incele seçeneğine tıklayın.
2. Konsolda açılan bölümde ki koda sağ tıklayın ve COPY > Copy full XPath seçeneğine tıklayın.
3. Aldığınız veriyi bir txt dosyasına kaydedin. Aynı işlemi şifre bölümü içinde gerçekleştirin.
Şimdi XPATH değerlerimizi aldık önceki kodumuza ekleme yaparak bu XPATH'leri kullanabiliriz.
JavaScript:
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto('https://instagram.com'); // Instagram sayfasına gittik
const THTXPath = '[/B]/html/body/div[2]/div/div/div[2]/div/div/div[1]/section/main/article/div[2]/div[1]/div[2]/form/div/div[1]/div/label/input[B]'; //Aldığımız XPATH
await page.waitForXPath(THTXPath); // XPATH'in sayfaya yüklenmesini bekliyoruz
//XPATH Görüldükten sonra yapılacak işlemler
await browser.close();
})();
- Bu aldığımız XPATH değerlerini ne için kullanacağız? -
3. Bölümde bu formları doldurmayı ve giriş yap butonuna tıklamayı öğreneceğiz.
XPATH ile veri kazımayı yani örneğin tiktok kullanıcı sayfasında kullanıcı adı bölümünün XPATH'ini alıp konsola kullanıcı adını yazdırabiliriz.
Bu işlemi bir önce ki konudada göstermiştik, fakat daha iyi anlamanız açısından örneği burayada koyalım.
JavaScript:
const handle = await page.$x(THTXPath);
const text = await page.evaluate(element => element.textContent, handle[0]);
console.log(`Kullanıcı Adınız: ${text}`);
XPathmizi kullanıcı adı bölümü olarak düşünün gittiği sayfa üzerinde ki kullanıcı adını konsola yazdırır.
Örneğin: Kripto sitelerinden, haber sitelerinden bu gibi yöntemlerle bir çok veri kazıyabilirsiniz.
merdecesbenz bölümünün XPATH'ini aldığımız zaman bize kullanıcı adını yazdırır.
Şu an tiktok.com/@roichueeee sayfasına gitsek bize kullanıcı adını roichueeee olarak yazdırır.
Önceki Konumuza Göz Atın: Node.js ve Puppeteer | Başlangıç #1
Aklınıza takılan soruları iletebilirsiniz.
Hayırlı forumlar.