Kuklacı ve Selenyum: Web Kazıma İçin Ne Seçilmeli?

Pichai Nurjanah
tarafından gönderildi
Pichai Nurjanah

Proxy Seçin ve Satın Alın

Kuklacı ve Selenyum: Web Kazıma İçin Ne Seçilmeli?
0 Yorum

Web kazıma için Kuklacı ve Selenyum arasında karar vermeye mi çalışıyorsunuz? Her ikisi de güçlü tarayıcı otomasyon çerçeveleridir ve doğru seçimi yapmak, özel kazıma ihtiyaçlarınıza ve mevcut kaynaklara bağlıdır.

Bilinçli bir karar vermenize yardımcı olmak için aşağıdaki tabloda Puppeteer ve Selenium arasındaki temel farkları vurguladık. Daha sonra ayrıntılara ineceğiz ve her çerçevenin web sayfalarından veri çıkarmadaki etkinliğini göstermek için birer örnek sunacağız.

KriterlerKuklacıSelenyum
Uyumlu DillerYalnızca JavaScript resmi olarak desteklenmektedir ancak resmi olmayan PHP ve Python bağlantı noktaları da vardırJava, Python, C#, Ruby, PHP, JavaScript ve Kotlin
Tarayıcı DesteğiChromium ve deneysel Firefox desteğiChrome, Safari, Firefox, Opera, Edge ve Internet Explorer
Verim60% Selenyumdan daha hızlıHızlı
İşletim Sistemi DesteğiWindows, Linux ve macOSWindows, Linux, macOS ve Solaris
MimariBaşsız tarayıcı örneklerine sahip olay odaklı mimariTarayıcı örneğini kontrol etmek için web sürücüsündeki JSONWire protokolü
ÖnkoşullarJavaScript paketi yeterliSelenyum Bağlamaları (seçilen programlama dili için) ve tarayıcı web sürücüleri
ToplumSelenium'a kıyasla daha küçük toplulukİyi yapılandırılmış belgeler ve geniş bir topluluk

Bu kitaplıkları ayrıntılı olarak tartışmaya devam edelim ve bir web sayfasından veri çıkarmadaki verimliliklerini göstermek için her biriyle bir kazıma örneği gerçekleştirelim.

Kuklacı logosu

Kuklacı

Kuklacı Chrome veya Chromium'u DevTools Protokolü üzerinden kontrol etmek için üst düzey bir API sağlayan bir Node.js kitaplığıdır. Ekran görüntüsü alma, PDF oluşturma ve sayfalarda gezinme gibi Chrome veya Chromium'daki görevleri otomatikleştirmek için tasarlanmıştır.

Puppeteer ayrıca düğmelere tıklamak, formları doldurmak ve görüntülenen sonuçları doğrulamak gibi kullanıcı etkileşimlerini simüle ederek web sayfalarını test etmek için de kullanılabilir.

Kuklacının Avantajları

  • Kullanım kolaylığı: Kullanımı basit ve anlaşılır.
  • Krom ile birlikte gelir: Ek kurulum gerekmez.
  • Başsız Mod: Varsayılan olarak başsız modda çalışır ancak tam tarayıcı modunda çalışacak şekilde yapılandırılabilir.
  • Olay Odaklı Mimari: Kodunuzda manuel uyku araması ihtiyacını ortadan kaldırır.
  • Kapsamlı Yetenekler: Ekran görüntüleri alabilir, PDF'ler oluşturabilir ve tüm tarayıcı işlemlerini otomatikleştirebilir.
  • Performans Yönetimi: Kazıyıcınızı optimize etmek ve hata ayıklamak için çalışma süresini ve yük performansını kaydetmeye yönelik araçlar sunar.
  • SPA Taraması: Tek Sayfalı Uygulamaları (SPA'lar) tarayabilir ve önceden oluşturulmuş içerik oluşturabilir (sunucu tarafı oluşturma).
  • Komut Dosyası Kaydı: DevTools konsolunu kullanarak tarayıcıdaki eylemleri kaydederek Puppeteer komut dosyaları oluşturmaya olanak tanır.

Kuklacının Dezavantajları

  • Sınırlı Tarayıcı Desteği: Selenium'a kıyasla daha az tarayıcıyı destekler.
  • JavaScript Odaklı: Python ve PHP için resmi olmayan bağlantı noktaları mevcut olmasına rağmen, öncelikle JavaScript'i destekler.

Puppeteer ile Web Kazıma Örneği

Tuna web sitesinin Suç ve Gerilim kategorisindeki öğeleri çıkarmak için Puppeteer web kazıma eğitimini inceleyelim.

Tuna Mağazası: Suç ve Gerilim

Başlamak için Puppeteer modülünü içe aktarın ve Puppeteer kodunu çalıştıracak eşzamansız bir işlev oluşturun:

const puppeteer = require('puppeteer'); 

async function main() { 
    // Launch a headless browser instance 
    const browser = await puppeteer.launch({ headless: true });

    // Create a new page object 
    const page = await browser.newPage();

    // Navigate to the target URL and wait until the loading finishes
    await page.goto('https://danube-webshop.herokuapp.com/', { waitUntil: 'networkidle2' });

    // Wait for the left-side bar to load
    await page.waitForSelector('ul.sidebar-list');

    // Click on the first element and wait for the navigation to finish
    await Promise.all([
        page.waitForNavigation(),
        page.click("ul[class='sidebar-list'] > li > a"),
    ]);

    // Wait for the book previews to load
    await page.waitForSelector("li[class='preview']");

    // Extract the book previews
    const books = await page.evaluateHandle(
        () => [...document.querySelectorAll("li[class='preview']")]
    );

    // Extract the relevant data using page.evaluate
    const processed_data = await page.evaluate(elements => {
        let data = [];
        elements.forEach(element => {
            let title = element.querySelector("div.preview-title").innerHTML;
            let author = element.querySelector("div.preview-author").innerHTML;
            let rating = element.querySelector("div.preview-details > p.preview-rating").innerHTML;
            let price = element.querySelector("div.preview-details > p.preview-price").innerHTML;

            let result = { title, author, rating, price };
            data.push(result);
        });
        return data;
    }, books);

    // Print out the extracted data
    console.log(processed_data);

    // Close the page and browser respectively
    await page.close();
    await browser.close();
}

// Run the main function to scrape the data
main();

Beklenen çıktı

Kodu çalıştırdığınızda çıktı aşağıdakine benzemelidir:

[
    {
        title: 'Does the Sun Also Rise?',
        author: 'Ernst Doubtingway',
        rating: '★★★★☆',
        price: '$9.95'
    },
    {
        title: 'The Insiders',
        author: 'E. S. Hilton',
        rating: '★★★★☆',
        price: '$9.95'
    },
    {
        title: 'A Citrussy Clock',
        author: 'Bethany Urges',
        rating: '★★★★★',
        price: '$9.95'
    }
]

Kuklacı Kullanmanın Başka Bir Örneği

Puppeteer, web sayfalarından veri toplamanın yanı sıra çeşitli otomasyon görevleri için de kullanılabilir. Yaygın kullanım örneklerinden biri, bir web sayfasının PDF'sini oluşturmaktır. Bir web sayfasından PDF oluşturmak için Puppeteer'ın kullanıldığı bir örneği inceleyelim.

Puppeteer ile PDF oluşturma

Adım 1: Kuklacıyı İçe Aktarın ve Eşzamansız Bir İşlev Oluşturun

const puppeteer = require('puppeteer');

async function generatePDF() {
    // Launch a headless browser instance
    const browser = await puppeteer.launch({ headless: true });

    // Create a new page object
    const page = await browser.newPage();

    // Navigate to the target URL
    await page.goto('https://example.com', { waitUntil: 'networkidle2' });

    // Generate a PDF from the web page
    await page.pdf({
        path: 'example.pdf', // Output file path
        format: 'A4',        // Paper format
        printBackground: true, // Include background graphics
    });

    // Close the page and browser respectively
    await page.close();
    await browser.close();
}

// Run the function to generate the PDF
generatePDF();

Ek Kuklacı Seçenekleri

Puppeteer, ihtiyaçlarınıza uyacak şekilde özelleştirilebilecek PDF'ler oluşturmak için çeşitli seçenekler sunar. Kullanabileceğiniz seçeneklerden bazıları şunlardır:

  • path: PDF'nin kaydedileceği dosya yolu.
  • format: Kağıt formatı (örneğin, 'A4', 'Letter').
  • printBackground: Arka plan grafiklerinin dahil edilip edilmeyeceği.
  • landscape: Ayarlanır true manzara yönlendirmesi için.
  • margin: PDF için kenar boşluklarını belirtin (üst, sağ, alt, sol).

Ek Seçeneklerle Örnek:

const puppeteer = require('puppeteer');

async function generatePDF() {
    const browser = await puppeteer.launch({ headless: true });
    const page = await browser.newPage();
    await page.goto('https://example.com', { waitUntil: 'networkidle2' });

    await page.pdf({
        path: 'example.pdf',
        format: 'A4',
        printBackground: true,
        landscape: true,
        margin: {
            top: '20px',
            right: '20px',
            bottom: '20px',
            left: '20px',
        },
    });

    await page.close();
    await browser.close();
}

generatePDF();

Örnek Çıktı

Yukarıdaki kodu çalıştırmak, adında bir PDF dosyası oluşturacaktır. example.pdf web sayfasının içeriğinin bulunduğu geçerli dizinde https://example.com.

Puppeteer, verileri kazımaktan PDF oluşturmaya kadar web otomasyonu görevleri için çok yönlü bir araçtır. Kullanım kolaylığı ve güçlü özellikleri, onu çok çeşitli tarayıcı etkinliklerini otomatikleştirmek için mükemmel bir seçim haline getiriyor. İster veri topluyor olun, ister rapor oluşturuyor olun, ister web sayfalarını test ediyor olun, Puppeteer işi verimli bir şekilde halletmeniz için ihtiyacınız olan araçları sağlar.

Selenyum Logosu

Selenyum

Selenyum genellikle web kazıma için kullanılan açık kaynaklı bir uçtan uca test ve web otomasyon aracıdır. Ana bileşenleri arasında Selenium IDE, Selenium WebDriver ve Selenium Grid bulunur.

  • Selenyum IDE: Eylemleri otomatikleştirmeden önce kaydetmek için kullanılır.
  • Selenyum Web Sürücüsü: Tarayıcıdaki komutları yürütür.
  • Selenyum Izgarası: Paralel yürütmeyi etkinleştirir.

Selenyumun Avantajları

  • Kullanım kolaylığı: Kullanımı basit ve anlaşılır.
  • Dil desteği: Python, Java, JavaScript, Ruby ve C# gibi çeşitli programlama dillerini destekler.
  • Tarayıcı Otomasyonu: Firefox, Edge, Safari gibi tarayıcıları ve hatta özel QtWebKit tarayıcılarını otomatikleştirebilir.
  • Ölçeklenebilirlik: Farklı tarayıcı ayarlarına sahip bulut sunucuları kullanarak Selenium'u yüzlerce örneğe ölçeklendirmek mümkündür.
  • Çapraz Platform: Windows, macOS ve Linux'ta çalışır.

Selenyumun Dezavantajları

  • Karmaşık Kurulum: Selenyum kurulum yöntemleri karmaşık olabilir.

Selenyumlu Web Kazıma Örneği

Puppeteer'da olduğu gibi, aynı hedef siteyi kullanarak Selenium ile web kazıma üzerine bir eğitimden geçelim. Kitap ön izlemelerini Tuna web sitesinin Suç ve Gerilim kategorisinden çıkaracağız.

Tuna Mağazası: Suç ve Gerilim

Adım 1: Gerekli Modülleri İçe Aktarın ve Selenyum'u Yapılandırın

import time
from selenium import webdriver
from selenium.webdriver.common.by import By

options = webdriver.ChromeOptions()
options.add_argument("--headless")

2. Adım: Chrome Web Sürücüsünü başlatın

driver = webdriver.Chrome(options=options)

3. Adım: Hedef Web Sitesine Gidin

time.sleep(1)
crime_n_thrillers = driver.find_element(By.CSS_SELECTOR, "ul[class='sidebar-list'] > li")
crime_n_thrillers.click()
time.sleep(1)
books = driver.find_elements(By.CSS_SELECTOR, "div.shop-content li.preview")

Adım 4: Suç ve Gerilim Kategorisine tıklayın ve Kitap Önizlemelerini Çıkarın

time.sleep(1)
crime_n_thrillers = driver.find_element(By.CSS_SELECTOR, "ul[class='sidebar-list'] > li")
crime_n_thrillers.click()
time.sleep(1)
books = driver.find_elements(By.CSS_SELECTOR, "div.shop-content li.preview")

Adım 5: Her Kitap Önizlemesinden Veri Çıkarmak için Bir İşlev Tanımlayın

def extract(element):
    title = element.find_element(By.CSS_SELECTOR, "div.preview-title").text
    author = element.find_element(By.CSS_SELECTOR, "div.preview-author").text
    rating = element.find_element(By.CSS_SELECTOR, "div.preview-details p.preview-rating").text
    price = element.find_element(By.CSS_SELECTOR, "div.preview-details p.preview-price").text
    return {"title": title, "author": author, "rating": rating, "price": price}

Adım 6: Önizlemelerde Döngü Yapın, Verileri Çıkarın ve Sürücüden Çıkın

extracted_data = []
for element in books:
    data = extract(element)
    extracted_data.append(data)

print(extracted_data)
driver.quit()

Beklenen çıktı

Yukarıdaki kodun çalıştırılması aşağıdakine benzer bir çıktı üretecektir:

[
    {'title': 'Does the Sun Also Rise?', 'author': 'Ernst Doubtingway', 'rating': '★★★★☆', 'price': '$9.95'},
    {'title': 'The Insiders', 'author': 'E. S. Hilton', 'rating': '★★★★☆', 'price': '$9.95'},
    {'title': 'A Citrussy Clock', 'author': 'Bethany Urges', 'rating': '★★★★★', 'price': '$9.95'}
]

Ek Selenyum Örneği: Ekran Görüntüsü Alma

Verileri kazımaya ek olarak Selenium, web sayfalarının ekran görüntülerini almak için de kullanılabilir. Selenyum kullanarak bir web sayfasının ekran görüntüsünün nasıl alınacağına dair bir örneği burada bulabilirsiniz.

Adım 1: Gerekli Modülleri İçe Aktarın ve Selenyum'u Yapılandırın

from selenium import webdriver

options = webdriver.ChromeOptions()
options.add_argument("--headless")

2. Adım: Chrome Web Sürücüsünü başlatın

driver = webdriver.Chrome(options=options)

3. Adım: Hedef Web Sitesine Gidin

url = "https://example.com"
driver.get(url)

4. Adım: Ekran Görüntüsü Alın

driver.save_screenshot("example_screenshot.png")

Adım 5: Sürücüden Çıkın

driver.quit()

Selenium, web kazıma ve ekran görüntüsü alma dahil, web otomasyon görevleri için çok yönlü bir araçtır. Çoklu programlama dili ve tarayıcı desteği ve ölçeklenebilirliği, onu çeşitli otomasyon ihtiyaçları için güçlü bir seçim haline getiriyor. İster veri çıkarıyor olun ister rapor oluşturuyor olun Selenium, görevlerinizi verimli bir şekilde otomatikleştirmenizi sağlayacak yetenekler sağlar.

Kuklacı ve Selenyum: Hız Karşılaştırması

Puppeteer Selenium'dan daha mı hızlı? Cevap evet; Kuklacı genellikle Selenium'dan daha hızlıdır.

Puppeteer ve Selenium'un hızını karşılaştırmak için Tuna deposu sanal alanını kullandık ve yukarıda sunulan komut dosyalarını 20 kez çalıştırarak yürütme sürelerinin ortalamasını aldık.

Selenyum Hız Testi

Biz kullandık time Selenyum betiğinin yürütme süresini ölçmek için Python'daki modül. Başlangıç zamanı senaryonun başında ve bitiş zamanı da senaryonun sonunda kaydedildi. Bu süreler arasındaki fark toplam yürütme süresini sağladı.

İşte Selenium için kullanılan betiğin tamamı:

import time
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

def extract(element):
    title = element.find_element(By.CSS_SELECTOR, "div.preview-title").text
    author = element.find_element(By.CSS_SELECTOR, "div.preview-author").text
    rating = element.find_element(By.CSS_SELECTOR, "div.preview-details p.preview-rating").text
    price = element.find_element(By.CSS_SELECTOR, "div.preview-details p.preview-price").text
    return {"title": title, "author": author, "rating": rating, "price": price}

# Start the timer
start_time = time.time()

options = webdriver.ChromeOptions()
options.add_argument("--headless")

# Create a new instance of the Chrome driver
driver = webdriver.Chrome(options=options)

url = "https://danube-webshop.herokuapp.com/"
driver.get(url)

# Click on the Crime & Thrillers category
time.sleep(1)
crime_n_thrillers = driver.find_element(By.CSS_SELECTOR, "ul[class='sidebar-list'] > li")
crime_n_thrillers.click()
time.sleep(1)

# Extract the book previews
books = driver.find_elements(By.CSS_SELECTOR, "div.shop-content li.preview")

extracted_data = []
for element in books:
    data = extract(element)
    extracted_data.append(data)

print(extracted_data)

# End the timer
end_time = time.time()
print(f"The whole script took: {end_time - start_time:.4f} seconds")

driver.quit()

Kuklacı Hız Testi

Puppeteer senaryosu için şunu kullandık: Date yürütme süresini ölçmek için nesne. Başlangıç zamanı senaryonun başında ve bitiş zamanı da senaryonun sonunda kaydedildi. Bu süreler arasındaki fark toplam yürütme süresini sağladı.

Puppeteer için kullanılan betiğin tamamı burada:

const puppeteer = require('puppeteer');

async function main() {
    const start = Date.now();

    const browser = await puppeteer.launch({ headless: true });
    const page = await browser.newPage();
    await page.goto('https://danube-webshop.herokuapp.com/', { waitUntil: 'networkidle2' });

    await page.waitForSelector('ul.sidebar-list');

    await Promise.all([
        page.waitForNavigation(),
        page.click("ul[class='sidebar-list'] > li > a"),
    ]);

    await page.waitForSelector("li[class='preview']");
    const books = await page.evaluateHandle(
        () => [...document.querySelectorAll("li[class='preview']")]
    );

    const processed_data = await page.evaluate(elements => {
        let data = [];
        elements.forEach(element => {
            let title = element.querySelector("div.preview-title").innerHTML;
            let author = element.querySelector("div.preview-author").innerHTML;
            let rating = element.querySelector("div.preview-details > p.preview-rating").innerHTML;
            let price = element.querySelector("div.preview-details > p.preview-price").innerHTML;

            let result = { title, author, rating, price };
            data.push(result);
        });
        return data;
    }, books);

    console.log(processed_data);
    await page.close();
    await browser.close();

    const end = Date.now();
    console.log(`Execution time: ${(end - start) / 1000} seconds`);
}

main();

Performans Testi Sonuçları

Performans testleri Puppeteer'ın Selenium'dan yaklaşık 60% daha hızlı olduğunu gösterdi. Bu hız avantajı, özellikle Chromium tabanlı tarayıcılarla çalışırken, yüksek hızlı web kazıma ve otomasyon gerektiren projeler için Puppeteer'ı daha uygun bir seçim haline getiriyor.

Hız Sonuçları Özeti:

Kuklacı ve Selenyum Hız Testi

Aşağıdaki grafik Puppeteer ve Selenium arasındaki performans farkını göstermektedir:

Hızlı, verimli web kazıma gerektiren projeler için Puppeteer uygulamalarının ölçeğini büyütmek bu bağlamda en uygun seçimdir.

Kuklacı ve Selenyum: Hangisi Daha İyi?

Peki kazıma için Selenium ve Puppeteer arasında hangisi daha iyi? Uzun vadeli kütüphane desteği, tarayıcılar arası destek ve web kazıma ihtiyaçlarınız gibi birden fazla faktöre bağlı olduğundan bu sorunun doğrudan bir cevabı yoktur.

Puppeteer daha hızlıdır ancak Selenium ile karşılaştırıldığında daha az tarayıcıyı destekler. Selenium ayrıca Puppeteer'a kıyasla daha fazla programlama dilini destekler.

Çözüm

Puppeteer veya Selenium kullanmak web kazıma için iyi bir seçenek olsa da, web kazıma projenizin ölçeğini büyütmek ve optimize etmek zor olabilir çünkü gelişmiş anti-bot önlemleri bu kitaplıkları tespit edip engelleyebilir. Bunu önlemenin en iyi yolu OneProxy gibi bir web kazıma API'si kullanmaktır.

Puppeteer'ı Proxy Sunucularla Kullanmak

Puppeteer'ı bir proxy sunucusuyla kullanmak için proxy ayarlarını args tarayıcı örneğini başlatırken seçenek. İşte bir örnek:

const puppeteer = require('puppeteer');

async function main() {
    const proxyServer = 'http://your-proxy-server:port';
    
    const browser = await puppeteer.launch({
        headless: true,
        args: [`--proxy-server=${proxyServer}`]
    });

    const page = await browser.newPage();
    await page.goto('https://example.com', { waitUntil: 'networkidle2' });

    // Perform your web scraping tasks here

    await browser.close();
}

main();

Selenium'u Proxy Sunucularla Kullanmak

Selenium'u bir proxy sunucusuyla kullanmak için proxy seçeneklerini kullanarak ayarlayabilirsiniz. webdriver.Proxy sınıf. İşte bir örnek:

from selenium import webdriver
from selenium.webdriver.common.proxy import Proxy, ProxyType

proxy = Proxy()
proxy.proxy_type = ProxyType.MANUAL
proxy.http_proxy = "your-proxy-server:port"
proxy.ssl_proxy = "your-proxy-server:port"

capabilities = webdriver.DesiredCapabilities.CHROME
proxy.add_to_capabilities(capabilities)

options = webdriver.ChromeOptions()
options.add_argument("--headless")

driver = webdriver.Chrome(desired_capabilities=capabilities, options=options)
driver.get("https://example.com")

# Perform your web scraping tasks here

driver.quit()

Proxy sunucularını Puppeteer ve Selenium ile kullanmak, IP tabanlı kısıtlamaları aşmanıza ve engellenme riskini azaltarak web kazıma görevlerinizin verimliliğini artırmanıza yardımcı olabilir. OneProxy'nin dönen proxy'leri kusursuz bir kazıma deneyimi sunarak bu süreci daha da optimize edebilir.

Sık Sorulan Sorular (SSS)

Puppeteer ve Selenium, web kazıma, test etme ve tarayıcı görevlerini otomatikleştirmek için kullanılan tarayıcı otomasyon çerçeveleridir. Puppeteer, DevTools Protokolü üzerinden Chrome veya Chromium'u kontrol eden bir Node.js kitaplığıdır; Selenium ise WebDriver API'si aracılığıyla çeşitli tarayıcıları ve programlama dillerini destekleyen açık kaynaklı bir araçtır.

Kuklacı genellikle Selenium'dan daha hızlıdır. Ancak hız farkı, web kazıma veya otomasyon projelerinizde kullanılan belirli görevlere ve konfigürasyonlara bağlı olarak değişebilir.

Puppeteer, kullanım kolaylığı, hızı ve varsayılan olarak başsız modda görevleri otomatikleştirme yeteneği ile tanınır. Chromium'u destekler ve kodda manuel uyku çağrıları ihtiyacını ortadan kaldıran güçlü, olay odaklı bir mimariye sahiptir.

Puppeteer, Selenium'a kıyasla daha az tarayıcıyı destekler ve öncelikle JavaScript'e odaklanır, ancak Python ve PHP gibi diğer diller için resmi olmayan bağlantı noktaları mevcuttur.

Puppeteer'ı proxy sunucusu kullanacak şekilde proxy ayarlarını ileterek yapılandırabilirsiniz. args tarayıcıyı başlatırken seçenek.

Selenium birden fazla programlama dilini (Python, Java, JavaScript, Ruby, C#) destekler ve Firefox, Edge, Safari dahil olmak üzere çeşitli tarayıcıları ve QtWebKit gibi özel tarayıcıları otomatikleştirebilir. Ayrıca, farklı tarayıcı ayarlarıyla bulut sunucuları kurma gibi teknikler aracılığıyla kapsamlı ölçeklenebilirliğe de olanak tanır.

Selenium'un kurulumu Puppeteer'a kıyasla daha karmaşık olabilir, özellikle de farklı tarayıcılar ve ortamlar için yapılandırılırken.

Selenium'da bir proxy sunucusu kurabilirsiniz. webdriver.Proxy sınıf.

Hem Puppeteer'ı hem de Selenium'u kullanarak Tuna mağazası sanal alanında aynı web kazıma görevlerini gerçekleştirdik. Her komut dosyası 20 kez çalıştırıldı ve performansı karşılaştırmak için ortalama yürütme süreleri hesaplandı.

Sonuçlar, Puppeteer'ın Selenium'dan yaklaşık 60% daha hızlı olduğunu gösterdi; bu da onu yüksek hızlı web kazıma ve otomasyon görevleri için daha iyi bir seçim haline getiriyor.

OneProxy engellenmeyi önlemenize yardımcı olabilir. OneProxy, anti-bot atlamayı yönetir, dönen proxy'ler, başsız tarayıcılar, otomatik yeniden denemeler ve daha fazlasını sağlayarak kusursuz bir web kazıma deneyimi sağlar.

YORUM BIRAKIN

Veri Merkezi Proxy'leri
Paylaşılan Proxy'ler

Çok sayıda güvenilir ve hızlı proxy sunucusu.

Buradan başlayarakIP başına $0,06
Dönen Proxy'ler
Dönen Proxy'ler

İstek başına ödeme modeliyle sınırsız sayıda dönüşümlü proxy.

Buradan başlayarakİstek başına $0.0001
Özel Proxy'ler
UDP Proxy'leri

UDP destekli proxy'ler.

Buradan başlayarakIP başına $0,4
Özel Proxy'ler
Özel Proxy'ler

Bireysel kullanıma özel proxy'ler.

Buradan başlayarakIP başına $5
Sınırsız Proxy
Sınırsız Proxy

Sınırsız trafiğe sahip proxy sunucular.

Buradan başlayarakIP başına $0,06
Şu anda proxy sunucularımızı kullanmaya hazır mısınız?
IP başına $0,06'dan