Puppeteer.js’ı Diğer Araçlarla Bütünleştirerek Gelişmiş Web Otomasyonu

Rind Devran Tukan
Rind Devran Tukan
3 dakika okuma
Puppeteer.js’ı Diğer Araçlarla Bütünleştirerek Gelişmiş Web Otomasyonu
Reading Time: 3 minutes

Puppeteer.js’a Giriş

Puppeteer.js, Chrome ekibi tarafından geliştirilmiş bir Node.js kütüphanesidir ve headless Chrome veya Chromium’u kontrol etmek için yüksek seviyeli bir API sağlar. Web kazıma, otomatik test ve web sayfalarının ekran görüntülerini veya PDF’lerini oluşturmak için yaygın olarak kullanılır. Puppeteer tek başına güçlü olsa da, diğer araçlarla bütünleştirmek, yeteneklerini önemli ölçüde artırabilir ve web otomasyonu iş akışlarınızı optimize edebilir.

Puppeteer’ı Diğer Araçlarla Neden Bütünleştirmelisiniz?

Puppeteer’ı diğer araçlarla bütünleştirmek size şunları yapma imkanı sağlar:

  • Fonksiyonları genişletme: Puppeteer’ı diğer kütüphanelerle birleştirerek temel web otomasyonunun ötesinde görevleri yönetin.
  • Verimliliği artırma: Puppeteer’ı diğer araçlarla zincirleyerek karmaşık iş akışlarını otomatikleştirin.
  • Testleri geliştirme: Kapsamlı uçtan uca testler için test çerçeveleriyle bütünleştirin.
  • İşlemleri ölçeklendirme: Bulut hizmetlerini kullanarak Puppeteer komut dosyalarını ölçekte çalıştırın.

Puppeteer ile Bütünleştirilecek Ana Araçlar

1. Test Çerçeveleri

Puppeteer, Jest, Mocha ve Cypress gibi test çerçeveleriyle bütünleştirilerek test yeteneklerinizi artırabilir.

Örnek: Puppeteer ile Jest

Jest, Puppeteer ile uçtan uca testler için kullanılabilecek popüler bir test çerçevesidir. İşte basit bir örnek:

const puppeteer = require('puppeteer');

test('Google Arama Testi', async () => {
  const browser = await puppeteer.launch();
  const page = await browser.newPage();
  await page.goto('https://www.google.com');
  await page.type('input[name="q"]', 'Puppeteer integration');
  await page.click('input[type="submit"]');
  await page.waitForNavigation();
  const title = await page.title();
  expect(title).toContain('Puppeteer integration');
  await browser.close();
});

2. Bulut Hizmetleri

Puppeteer’ı bulutta çalıştırmak, otomasyon görevlerinizi ölçeklendirmenize yardımcı olabilir. AWS Lambda, Google Cloud Functions ve Azure Functions gibi hizmetler Puppeteer komut dosyalarını çalıştırmak için kullanılabilir.

Örnek: Puppeteer ile AWS Lambda

Puppeteer’ı AWS Lambda’da çalıştırmak için özel bir Chrome ikili dosyası kullanmanız gerekir. İşte temel bir kurulum:

const puppeteer = require('puppeteer-core');
const chromium = require('chrome-aws-lambda');

exports.handler = async (event) => {
  const browser = await puppeteer.launch({
    args: chromium.args,
    executablePath: await chromium.executablePath,
    headless: chromium.headless,
  });
  const page = await browser.newPage();
  await page.goto('https://example.com');
  const screenshot = await page.screenshot();
  await browser.close();
  return {
    statusCode: 200,
    body: screenshot.toString('base64'),
  };
};

3. Veri İşleme Araçları

Puppeteer’ı Cheerio veya BeautifulSoup gibi veri işleme araçlarıyla bütünleştirmek, web kazıma yeteneklerinizi artırabilir.

Örnek: Puppeteer ile Cheerio

Cheerio, sunucu için tasarlanmış hızlı ve esnek bir çekirdek jQuery uygulamasıdır. İşte Puppeteer ile nasıl kullanabileceğiniz:

const puppeteer = require('puppeteer');
const cheerio = require('cheerio');

(async () => {
  const browser = await puppeteer.launch();
  const page = await browser.newPage();
  await page.goto('https://example.com');
  const html = await page.content();
  const $ = cheerio.load(html);
  const links = [];
  $('a').each((i, el) => {
    links.push($(el).attr('href'));
  });
  console.log(links);
  await browser.close();
})();

4. CI/CD Boru Hatları

Puppeteer’ı Jenkins, GitHub Actions veya GitLab CI gibi CI/CD araçlarıyla bütünleştirmek, test ve dağıtım iş akışlarınızı otomatikleştirmenize yardımcı olabilir.

Örnek: Puppeteer ile GitHub Actions

İşte Puppeteer testlerini çalıştırmak için temel bir GitHub Actions iş akışı:

name: Puppeteer Testleri

on: [push]

jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - name: Node.js Kullan
        uses: actions/setup-node@v2
        with:
          node-version: '14'
      - name: Bağımlılıkları Yükle
        run: npm install
      - name: Puppeteer Testlerini Çalıştır
        run: npm test

Gerçek Dünya Kullanım Örnekleri

1. Otomatik Web Kazıma

Puppeteer’ı Cheerio ve bir bulut hizmetiyle birleştirerek büyük miktarda veriyi verimli bir şekilde kazıyın. Örneğin, e-ticaret sitelerinden ürün fiyatlarını kazıyabilir ve verileri bir veritabanında saklayabilirsiniz.

2. Uçtan Uca Test

Puppeteer’ı Jest veya Mocha ile bütünleştirerek web uygulamalarınız için kapsamlı uçtan uca testler oluşturun. Bu, uygulamanızın farklı tarayıcılar ve cihazlar arasında beklendiği gibi çalıştığından emin olmanızı sağlar.

3. PDF Oluşturma

Puppeteer’ı kullanarak web sayfalarının PDF’lerini oluşturun ve bir bulut hizmetiyle bütünleştirerek işlemi otomatikleştirin. Bu, raporlar, faturalar veya belgeler oluşturmak için kullanışlıdır.

4. Performans İzleme

Puppeteer’ı izleme araçlarıyla bütünleştirerek web uygulamalarınızın performansını takip edin. Performans metriklerini yakalama ve raporlar oluşturma sürecini otomatikleştirebilirsiniz.

Sonuç

Puppeteer.js’ı diğer araçlarla bütünleştirmek, web otomasyonu yeteneklerinizi önemli ölçüde artırabilir. Test iş akışlarınızı iyileştirmek, web kazıma işlemlerinizi ölçeklendirmek veya PDF oluşturmayı otomatikleştirmek istiyorsanız, Puppeteer’ı diğer araçlarla birleştirmek hedeflerinize daha verimli bir şekilde ulaşmanıza yardımcı olabilir. Projelerinizde Puppeteer’ın tam potansiyelini açığa çıkarmak için bu bütünleştirmeleri denemeye başlayın.

Benzer Yazılar

Bloğumuzdan daha fazla içerik keşfedin