Webscraping: Puppeteer Vs Selenium

Webscraping: Puppeteer Vs Selenium

Web kazıma, web sitelerinden veri çıkarma işlemidir. Web tarayıcılarını kullanarak manuel olarak veri kazıyabilir veya Selenium ve Puppeteer gibi kütüphanelerle bu işlemi otomatikleştirebilirsiniz.

Selenium, tarayıcınızda herhangi bir kod yazmanıza gerek kalmadan web uygulamalarını otomatikleştirmenize ve web sitenizin işlevselliğini test etmenize olanak tanıyan açık kaynaklı bir araçtır. Ayrıca Java, Python, C# vb. gibi diğer programlama dilleriyle de uyumludur.

Puppeteer, başsız Linux sistemlerinde Chrome tarayıcı testlerini otomatikleştirmek için kullanılan bir JavaScript kütüphanesidir. Puppeteer, Chrome’u destekler ve Ubuntu 16.04 LTS, 18.04 LTS ile Debian 9 Stretch/Buster/Siduction (64-bit) sürümlerinde test edilmiştir. 

Bu makalede, Chrome tarayıcısını kullanarak uygulamaları otomatikleştirmek için Node.js'de Selenium WebDriver'ı Puppeteer ile birlikte nasıl kullanacağımızı öğreneceğiz.

Puppeteer nedir?

Puppeteer, puppeteer.js kullanarak tarayıcıyı kontrol etmenizi sağlayan bir JavaScript kütüphanesidir. Bu kütüphane, herhangi bir üçüncü taraf kaynağına bağımlı kalmadan web sayfaları oluşturmak, yönetmek ve bunlarla etkileşim kurmak için bir API sunar. Ayrıca, sayfayla etkileşim kurabilmeniz için fare olaylarını ve klavye girişlerini yakalamayı da destekler.

Puppeteer nasıl çalışır?

Puppeteer, Chrome’u kontrol etmeye yarayan bir Node kütüphanesidir. Bu kütüphane, tarayıcıyı JavaScript ile kontrol etmenize ve yalnızca HTML, CSS ve JS kullanılarak gerçekleştirilmesi imkânsız olan şekillerde tarayıcıyla etkileşim kurmanıza olanak tanır.

Bunu fare/klavye olaylarını simüle etmek, ekran görüntüsü almak, DOM öğelerini değiştirmek, HTTP istekleri göndermek vb. amaçlarla kullanabilirsiniz. Puppeteer ayrıca, kendi API’larını doğrudan kullanmadan Puppeteer komut dosyalarınızı yazmanıza olanak tanıyan bir API’ye sahiptir. API hakkında daha fazla bilgiyi buradan okuyabilirsiniz: https://github.com/puppeteerjs/puppeteer-api.

Puppeteer şu sorunu çözer: JavaScript çalıştıramadan bir tarayıcıyı nasıl kontrol edebilirim? Puppeteer, fare ve klavye olaylarını simüle etmenize, ekran görüntüsü almanıza, DOM öğelerini değiştirmenize, HTTP istekleri göndermenize ve çok daha fazlasını yapmanıza olanak tanır. Ayrıca, API’larını doğrudan kullanmadan da Puppeteer komut dosyalarınızı yazabilirsiniz. Bu, tarayıcıyla alışılmadık bir şekilde etkileşime giren kendi Chrome Uzantınızı geliştirmek istediğinizde kullanışlıdır.

Karmaşıklık ve otomasyon ortamı her geçen gün değişiyor; bu nedenle tek bir araç her durum için çözüm olmayabilir. Puppeteer’ın bazı sınırlamaları vardır. Yalnızca Chrome tarayıcısını desteklemektedir. Firefox için Puppeteer ise henüz geliştirme aşamasındadır.

Puppeteer'ı kullanmanın avantajları nelerdir? 

Puppeteer, komut dosyalarını kendiniz yazmanıza gerek kalmadan tarayıcınızda çalıştırmanın kolay bir yolunu sunar. Kullanımı basit, hafif ve genişletilebilir bir araçtır. Herhangi bir programlama dili veya çerçeveyle (NodeJS, Python, Java) kullanabilirsiniz. Kendi API’sine sahip olduğu için, yalnızca web veri toplama amacıyla başka bir API öğrenmenize gerek kalmaz.

Puppeteer’ı kullanmak için Selenium’un nasıl çalıştığını bilmenize gerek yok, ancak yine de tüm avantajlarından yararlanabilirsiniz: otomasyon, test edilebilirlik ve taşınabilirlik!

Puppeteer'ı kullanmanın dezavantajları nelerdir?

Puppeteer, oldukça yeni bir çerçeve. Hâlâ beta aşamasında ve tüm tarayıcıları desteklemiyor (sadece Chrome, Firefox, Opera ve Safari’yi destekliyor). Ancak zamanla Puppeteer daha fazla tarayıcıyı destekleyebilecek. API de Selenium kadar olgun değil; bu nedenle başlangıçta bazı zorluklarla karşılaşabilirsiniz, ancak zamanla durum daha iyi hale gelecektir. Puppeteer'ın nasıl kullanıldığına dair birçok örneği resmi web sitesinde bulabilirsiniz: puppeteerjs.com/docs/getting-started/. 

Puppeteer'ı nasıl yüklerim? 

Puppeteer’ı web sitesinden bir paket indirerek ya da manuel olarak yükleyebilirsiniz. Puppeteer depo sayfasına gidin ve işletim sisteminiz için en son sürümü indirin. Programı çalıştırmak için bilgisayarınızda NodeJS'nin kurulu olması gerekir. Nereden başlayacağınızı bilmiyorsanız, şu adrese gidin: nodejs.org/en/download. npm install -g puppet komutunu çalıştırın. Bu komut, puppetserver'ı çalıştırmak için gerekli tüm bağımlılıkları indirecektir. Şimdi ana dizininizde bir terminal penceresi açın ve puppetserver yazın. 

Her şey yolunda giderse şuna benzer bir şey görmelisiniz: 

$ node server Starting server… done! http://localhost:4200 Connecting…done! http://localhost:4200 Disconnected / Connected http://localhost:4200 <– Start scraping now! 

Durmak için Ctrl+C tuşlarına basın, ardından exit yazın. 

Selenyum nedir?

Selenium, web tabanlı uygulamaları otomatikleştirmek için kullanabileceğiniz güçlü bir araçtır. GenellikleWebdriver olarak da anılır. Selenium oldukça uzun bir süredir piyasada olup, BT sektörünün en popüler araçlarından biri haline gelmiştir. 

Selenium ne işe yarar?

Selenium, düğmelere tıklama, formları doldurma ve hatta sayfalar arasında gezinme gibi çeşitli eylemleri gerçekleştirerek web sitelerinizi otomatikleştirmenize olanak tanır. Bu yazılımın temel amacı, kendiniz herhangi bir kod yazmanıza gerek kalmadan otomatik testleri kolay ve verimli hale getirmektir. Bu yazılımı tarayıcınızdan (Chrome/Firefox) veya Java, C# ya da Python gibi bir programlama dili içinde kullanabilirsiniz. Bilgisayarınıza kurduktan sonra, 4444 numaralı bağlantı noktasında (varsayılan) çalışan Selenium sunucusunu indirmeniz gerekir. Ardından Chrome/Firefox'u açın ve adres çubuğuna chrome://extensions yazın; burada mevcut uzantıların bir listesini göreceksiniz."Uzantıları Yönet" seçeneğini seçin, ardından "Paketsiz Uzantıyı Yükle" düğmesine tıklayın.

Selenium'u web sitelerini, mobil uygulamaları ve masaüstü uygulamalarını test etmek için kullanabilirsiniz. Kullanımı oldukça basittir ve herhangi bir programlama bilgisi gerektirmeden web tabanlı uygulamaları otomatikleştirmenize olanak tanır. Ayrıca, testleri kullanıcı dostu bir şekilde geliştirmek için görsel bir arayüze sahip olan Selenium IDE'yi kullanarak kendi testlerinizi de oluşturabilirsiniz.

Selenyumun Avantajları

  • Tüm web tarayıcılarında (Chrome, Firefox, IE) ve mobil cihazlarda (Android) çalışır. Selenium, platformlar arası bir yazılımdır. Tek yapmanız gereken, tercih ettiğiniz platform için bir IDE kurmak ve API’yi kullanmaya başlamaktır. Her platform için yeni API’ler veya farklı diller öğrenmenize gerek yoktur – tüm platformlarda çalışan tek bir dil kullanmanız yeterlidir. 
  • Selenium, Java, C#, Python ve daha pek çok dil dahil olmak üzere piyasadaki çoğu programlama dilini destekler. JavaScript'te bir işlemi otomatikleştirmek istiyorsanız, selenium-nodejs ile NodeJS'yi kullanabilirsiniz. 
  • Selenium, Protractor, WebDriver vb. gibi çeşitli çerçeveleri destekler. Bu çerçevelerin en iyi yanı, işleri doğrudan tarayıcının içine yazılmış saf tarayıcı otomasyon koduna kıyasla daha kolay hale getiren kullanışlı bir soyutlama katmanı sunmalarıdır. Örneğin, testlerimizin birden fazla tarayıcıda aynı anda çalışmasını istiyorsak, bunu selenium-webdriver ve selenium-webdriver2 ile gerçekleştirebiliriz. Bu, birden fazla tarayıcıda aynı anda test yaparken herhangi bir sorun yaşamayacağımız anlamına gelir; çünkü her tarayıcıya özel kodları manuel olarak yazmak yerine (ki bu durum test takımımızı çok daha karmaşık hale getirirdi), her şey çerçeve tarafından halledilecektir. 
  • Selenium için Google Chrome uzantıları, Firefox eklentileri ve benzeri pek çok eklenti mevcuttur. Başka ne var? Bolca örnek! Üstelik bunlar sadece açık kaynaklı projelerden değil, Appium, Sauce Labs veya Watir gibi ticari projelerden de geliyor. Dolayısıyla hızlı ve kolay bir çözüm arıyorsanız, bunları bir deneyin! Bunlar harika araçlar! Asenkron testleri de destekliyorlar; bu da, testiniz beklenenden daha uzun sürse bile, birbirlerinin yürütme akışını engellemeden (asenkron mod) aynı anda paralel olarak çalışan diğer testleri etkilemeyeceği anlamına gelir. Bu sayede, uygulamamızın yavaşlamasından endişe etmeden hızlı UI testleri yazabiliriz. 

Selenium ve Puppeteer'ın pazar eğilimleri, son birkaç yılda, özellikle de 2014'te Selenium 2'nin piyasaya sürülmesinden bu yana kullanımda önemli bir artış olduğunu göstermektedir. Selenium'un popülaritesi o zamandan beri daha da artmaya devam etmiştir; bu da, öngörülebilir gelecekte bu hızla büyümeye devam edeceği anlamına gelmektedir. 

Web Testlerinin Geleceği Nedir? 

Açık kaynak topluluğu, yakın zamanda yavaşlama belirtisi göstermeden yeni teknolojiler geliştirmeye ve mevcut teknolojileri iyileştirmeye devam ediyor. Yenilik yapmaya ve yeni araçlar yaratmaya devam ettiğimiz sürece, web test teknolojilerinde daha fazla gelişme bekleyebiliriz.

Web Otomasyon Araçları: Neden Kullanmalısınız? 

Ekip üyelerinizin projeleri üzerinde çalışmaya başladıkları zaman veya kod tabanlarını otomatik testlerle denetlemek için yardıma ihtiyaç duydukları zamanlarda, WebDriver gibi bir otomasyon aracına erişim imkânı, her seferinde bir şeyi manuel olarak test etmek istediklerinde elle çözümler denemeye çalışmaktan çok daha kolay bir yol sunacaktır. 

WebDriver gibi bir web otomasyon aracınız olduğunda, bunu testlerinizi otomatikleştirmek ve farklı dillerde yazmak için kullanabilirsiniz. Ayrıca, tarayıcıyla etkileşim kurmak ve manuel olarak yapılması zor ya da imkânsız olan uygulamanın belirli özelliklerini test etmek için de kullanabilirsiniz. Olasılıklar sınırsız!

Bir otomasyon aracı kullanmak, sistemin arka planda nasıl çalıştığı konusunda endişelenmenize gerek kalmadan kod tabanınız için otomatik testler yazmanıza olanak tanıyarak hayatınızı çok daha kolaylaştıracaktır. 

Selenium mu, Puppeteer mi: Web veri toplama için hangisi en iyisi?

İkisi arasındaki temel fark, Puppeteer’ın Node.js üzerinde çalışması, Selenium’un ise tarayıcıda çalışmasıdır.

Puppeteer'ı web veri toplama ve API testleri için kullanabilirsiniz, ancak Selenium kadar yaygın olarak desteklenmemektedir. Ayrıca yerleşik bir kullanıcı arayüzü test çalıştırıcısı da bulunmadığından, PhantomJS veya NightwatchJS gibi başsız bir tarayıcıyla kullanmak isterseniz kendi test çalıştırıcınızı yazmanız gerekecektir.

Selenium, Puppeteer’e kıyasla tarayıcılardan daha fazla destek almaktadır ve kullanıcı arayüzü test çalıştırıcısı, en popüler tarayıcıların çoğunda (Chrome dahil) kullanıma hazır olarak çalışmaktadır. Ancak, Puppeteer ile karşılaştırıldığında Selenium’da hâlâ eksik olan bazı özellikler bulunmaktadır. Özellikle, sayfadaki öğelerle etkileşim kurmaya yarayan WebDriver API’leri; bu da, yalnızca bu kütüphaneyi kullanarak birden fazla sayfa/etki alanı/uygulama arasında karmaşık etkileşimleri (örneğin, bağlantılara tıklama) otomatikleştirmenin daha zor olduğu anlamına gelir. 

İşletmenizin gücü, proxy sunucularınızın çalışma süresiyle doğru orantılıdır. Özel hızlar ve sarsılmaz güvenilirlik için kurumsal düzeyde Statik ISP Proxy’lerine geçin. YA DA Dönen Ev Proxy’lerini kullanın ve %99,9’luk veri toplama başarı oranı elde edin.

Bu makalede:
Proxy Kaliteniz Konusunda Artık Endişelenmenize Gerek Yok

Statik ISP proxy’lerimiz, temiz olduğu garanti edilir ve %100 size tahsis edilmiştir. Ortak yük yok, sadece performans var.

Statik ISP Proxy'leri Alın

konusunda daha da derinlere dalın

İşi sonuna kadar halleden proxy'leri denemeye hazır mısınız?

60 saniyeden kısa sürede kurulur. Dünya çapında 24.100'den fazla işletme tarafından güvenilmektedir.

Setup in <60 seconds
İstediğiniz zaman iptal edebilirsiniz
7/24 canlı destek