Webscraping: Puppeteer Vs Selenium

Web scraping is the process of extracting data from websites. You can scrape manually using web browsers or automate it with libraries like Selenium and Puppeteer.

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

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 ve Debian 9 Stretch/Buster/Siduction (64-bit) üzerinde test edilmiştir. 

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

Menü

Puppeteer nedir?

Puppeteer, puppeteer.js kullanarak tarayıcıyı kontrol etmenizi sağlayan bir JavaScript kütüphanesidir. Kütüphane, herhangi bir 3. tarafa güvenmeden web sayfaları oluşturmak, yönetmek ve bunlarla etkileşim kurmak için bir API sağlar. Ayrıca, sayfayla etkileşime girebilmeniz için fare olaylarını ve klavye girişini yakalamayı da destekler.

Puppeteer nasıl çalışır?

Puppeteer, Chrome'u kontrol etmek için bir düğüm kütüphanesidir. Tarayıcıyı JavaScript ile kontrol etmenize ve yalnızca HTML, CSS ve JS kullanarak imkansız olan şekillerde etkileşimde bulunmanıza olanak tanır.

Fare/klavye olaylarını simüle etmek, ekran görüntüleri yakalamak, DOM öğelerini manipüle etmek, HTTP istekleri göndermek vb. için kullanabilirsiniz. Puppeteer ayrıca, API'lerinden herhangi birini doğrudan kullanmadan kuklacılık komut dosyalarınızı yazmanıza olanak tanıyan bir API'ye sahiptir. API hakkında daha fazla bilgiyi buradan edinebilirsiniz: https://github.com/puppeteerjs/puppeteer-api.

Puppeteer şu sorunu çözer: JavaScript çalıştırmadan bir tarayıcıyı nasıl kontrol edebilirim? Puppeteer fare/klavye olaylarını simüle etmenize, ekran görüntüleri yakalamanıza, DOM öğelerini manipüle etmenize, HTTP istekleri göndermenize ve çok daha fazlasına olanak tanır. Ayrıca kuklacılık komut dosyalarınızı doğrudan API'lerinden herhangi birini kullanmadan yazmanız da mümkündür. Bu, tarayıcı ile beklenmedik bir şekilde etkileşime giren kendi Chrome Uzantınızı oluşturmak istiyorsanız kullanışlıdır.

Karmaşıklık ve otomasyon bağlamı her geçen gün değişiyor, bu nedenle tek bir araç herkes için çözüm olmayabilir. Puppeteer'ın bazı sınırlamaları var. Yalnızca Chrome tarayıcısını destekler. Firefox için Puppeteer üzerinde çalışmalar devam ediyor.

Puppeteer kullanmanın avantajları nelerdir? 

Puppeteer, komut dosyalarını kendiniz yazmak zorunda kalmadan tarayıcınızda çalıştırmak için kolay bir yol sağlar. Basit, hafif ve genişletilebilirdir. Herhangi bir programlama dili veya çerçevesi (NodeJS, Python, Java) ile kullanabilirsiniz. Kendi API'sine sahiptir, bu nedenle yalnızca web kazıma amacıyla başka bir API öğrenmek zorunda kalmazsınız.

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

Puppeteer kullanmanın dezavantajları nelerdir?

Puppeteer çok genç bir framework. Hala beta aşamasında ve tüm tarayıcıları desteklemiyor (yalnızca Chrome, Firefox, Opera ve Safari'yi destekliyor). Ancak zamanla Puppeteer daha fazla tarayıcıyı destekleyebilecektir. API ayrıca Selenium kadar olgunlaşmamıştır, bu nedenle başlangıçta biraz sorun yaşayabilirsiniz, ancak zamanla daha iyi hale gelecektir. Puppeteer'ın resmi web sitesinde nasıl kullanılacağına dair birçok örnek bulabilirsiniz: puppeteerjs.com/docs/getting-started/. 

Puppeteer'ı nasıl yüklerim? 

Puppeteer'ı web sitesinden bir paket indirerek ya da elle kurarak yükleyebilirsiniz. Puppeteer depo sayfasına gidin ve işletim sisteminiz için en son sürümü indirin. Çalıştırmak için bilgisayarınızda NodeJS kurulu olmalıdır. Nereden başlayacağınızı bilmiyorsanız, buraya gidin: nodejs.org/en/download. npm install -g puppet komutunu çalıştırın. Bu, puppetserver'ı çalıştırmak için gerekli tüm bağımlılıkları indirecektir. Şimdi ev dizininizde bir terminal penceresi açın ve puppetserver yazın. 

Her şey yolunda giderse buna 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! 

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

Selenyum nedir?

Selenium is a potent tool that you can use to automate web-based applications. It is also commonly referred to as the Webdriver. Selenium has been around for quite some time, and it has become one of the most popular tools in the IT industry. 

Selenyum ne işe yarar?

Selenium allows you to automate your websites by executing different actions such as clicking buttons, filling out forms, or even navigating through pages. The main goal of this software is to make automated testing easy and efficient without having to write any code yourself. You can use this software from your browser (Chrome/Firefox) or within a programming language like Java, C# or Python, etc. Once installed on your computer, you must download the selenium server, which runs on port 4444 (default). Then open up Chrome/Firefox and type in chrome://extensions into the address bar where you will see a list of available extensions; select Manage Extensions, then click the Load Unpacked Extension button.

Selenium'u web sitelerini, mobil uygulamaları ve masaüstü uygulamalarını test etmek için kullanabilirsiniz. Kullanımı kolaydır ve herhangi bir programlama bilgisi olmadan web tabanlı uygulamaları otomatikleştirmenize olanak tanır. 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 çapraz platformdur. Tek yapmanız gereken, seçtiğiniz platform için bir IDE yüklemek ve API'yi kullanmaya başlamaktır. Her platform için yeni API'ler veya farklı diller öğrenmek zorunda değilsiniz - sadece tüm platformlarda çalışan tek bir dil kullanın. 
  • Selenium, Java, C#, Python ve diğerleri dahil olmak üzere piyasadaki çoğu programlama dilini destekler. JavaScript'te bir şeyi otomatikleştirmek istiyorsanız, selenium-nodejs ile NodeJS'yi kullanabilirsiniz. 
  • Selenium, Protractor, WebDriver vb. gibi çeşitli çerçeveleri destekler. Bu çerçevelerle ilgili en iyi şey, doğrudan tarayıcının içine yazılan saf tarayıcı otomasyon koduna kıyasla işleri kolaylaştıran güzel bir soyutlama katmanı sağlamalarıdır. Örneğin, testlerimizin aynı anda birden fazla tarayıcıda çalışmasını istiyorsak, bunu selenium-web driver ve selenium-webdriver2 ile yapabiliriz. Bu, aynı anda birden fazla tarayıcıda test yaparken herhangi bir sorun yaşamayacağımız anlamına gelir, çünkü her tarayıcıda manuel olarak özel kod yazmak yerine her şey çerçevenin kendisi tarafından ele alınacaktır (bu da test paketimizin çok daha karmaşık görünmesine neden olur). 
  • Selenium için Google Chrome uzantıları, Firefox eklentileri gibi birçok eklenti mevcuttur. Başka ne var? Çok sayıda örnek! Ve sadece açık kaynak projelerden değil, Appium, Sauce Labs veya Watir gibi ticari projelerden de. Eğer hızlı ve kolay bir şey arıyorsanız, bunları deneyin! Bunlar harika araçlar! Eşzamansız testleri de desteklerler, yani testiniz beklenenden daha uzun sürse bile, birbirlerinin yürütme akışını engellemeden paralel olarak eşzamanlı çalışan diğer testleri etkilemeyecektir (eşzamansız mod). Bu şekilde, uygulamamızı yavaşlatma endişesi olmadan hızlı UI testleri yazabiliriz. 

Selenium & Puppeteer'ın pazar trendleri, özellikle Selenium 2'nin 2014'te piyasaya sürülmesinden bu yana, son birkaç yılda kullanımda önemli bir artış olduğunu göstermektedir. Selenium'un popülaritesi o zamandan beri daha da artmaya devam etti, bu da öngörülebilir gelecekte muhtemelen bu oranda büyümeye devam edeceği anlamına geliyor. 

Web Testinin Geleceği Nedir? 

Açık kaynak topluluğu, yakın zamanda herhangi bir yavaşlama belirtisi olmadan yeni teknolojiler geliştirmeye ve mevcut olanları iyileştirmeye devam ediyor. İnovasyona ve yeni araçlar yaratmaya devam ettiğimiz sürece, daha fazla web testi teknolojisi iyileştirmesi bekleyebiliriz.

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

Ekip üyelerinizin projeleri üzerinde çalışma zamanı geldiğinde veya kod tabanlarını otomatik testlerle test etmek için yardıma ihtiyaç duyduklarında, WebDriver gibi bir otomasyon aracına erişebilmeleri, bir şeyin manuel olarak test edilmesini istedikleri her seferinde manuel çözümleri elle denemekten çok daha kolay olacaktır. 

WebDriver gibi bir web otomasyon aracınız olduğunda, testlerinizi otomatikleştirmek ve farklı dillerde yazmak için kullanabilirsiniz. Ayrıca tarayıcı ile etkileşime geçmek ve uygulamanın manuel olarak yapılması zor veya imkansız olan belirli özelliklerini test etmek için de kullanabilirsiniz. Olasılıklar sonsuzdur!

Bir otomasyon aracı kullanmak, kaputun altında işlerin nasıl yürüdüğü 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 veya Puppeteer: Webscraping için hangisi en iyisidir?

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

You can use Puppeteer for web scraping and API testing, but it’s not as widely supported as Selenium. It also doesn’t have a built-in UI test runner, so you’ll need to write your own if you want to use it with a headless browser like PhantomJS or NightwatchJS.

Selenium, Puppeteer'a göre tarayıcılardan daha fazla destek alır ve UI test çalıştırıcısı, çoğu popüler tarayıcıyla (Chrome dahil) kutudan çıkar çıkmaz çalışır. Bununla birlikte, Puppeteer'a kıyasla Selenium'da bazı özellikler hala eksiktir. Özellikle, bir sayfadaki öğelerle etkileşim için WebDriver API'leri - bu, yalnızca bu kütüphaneyi kullanarak birden çok sayfa / alan / uygulama (örneğin, bağlantılara tıklama) genelinde karmaşık etkileşimleri otomatikleştirmenin daha zor olduğu anlamına gelir. 

Now is the right moment to mention that our rotating residential proxies vastly improve web scraping operations with both Selenium and Puppeteer.

In this Article:
Leave behind the complexities of web scraping.
Opt for IPBurger’s advanced web intelligence solutions to effortlessly collect real-time public data.
Kaydolun

konusunda daha da derinlere dalın

Uncategorized
AJ Tait
The Best Storm Proxies Alternative: Faster, Safer & More Affordable Proxies

Looking for a Storm Proxies Alternative? Storm Proxies sells the dream: simple, affordable proxies that “just work.” And for some users? It kind of delivers. Until it doesn’t. Because here’s the reality—if you’re pulling small data sets, running light scraping jobs, or dipping your toes into sneaker copping, Storm Proxies

Proxyler
AJ Tait
The Best IPRoyal Alternative for Power, Control & Price

Outgrowing IPRoyal? Here’s the Smarter Alternative If you’ve been using IPRoyal, chances are it was for one simple reason—it’s cheap. And in the world of proxies, “cheap” can be enough to get you started. But here’s the thing about IPRoyal: it’s a gateway, not a long-term solution. At first, it

Scale Your Business
With The Most Advanced
Proxies On Earth
1 Numaralı Ödüllü Proxy Ağına Katılın