Node.js ve Puppeteer | XPATH #2

Roichue

Uzman üye
31 Mar 2022
1,410
889
Millî İstihbarat Teşkilatı
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.

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']


2bWoAXtnij.gif

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.

2bWoAXtnij.gif


f2ooytw.jpg


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.

dpf6mco.jpg


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();
})();

2bWoAXtnij.gif


- 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.
nx62eby.jpg


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.

2bWoAXtnij.gif


Önceki Konumuza Göz Atın: Node.js ve Puppeteer | Başlangıç #1
Aklınıza takılan soruları iletebilirsiniz.

Hayırlı forumlar.
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.