Bu proje, bir Interview Task projesidir. E-ticaret sitelerinden ürün verilerini çekmek ve işlemek için geliştirilmiştir. Java dilinde yazılmıştır ve Selenium, Jsoup, Apache POI ve JSON Simple kütüphanelerini kullanır.
- Java(21): Projeyi temel olarak Java dilinde geliştirdim.
- Selenium(Stable 4.18.1): Web tarayıcısını otomatikleştirmek için Selenium kütüphanesini kullandım. Proje için ChromeDriver gereklidir.
- Jsoup: Web sayfalarından veri kazımak için Jsoup kütüphanesini kullandım.
- Apache POI: Excel dosyaları oluşturmak için Apache POI kütüphanesini kullandım.
- JSON Simple: Verileri JSON formatına dönüştürmek için JSON Simple kütüphanesini kullandım.
Proje, aşağıdaki e-ticaret sitelerinden veri çekmek için tasarlanmıştır:
- Trendyol
- Hepsiburada
- N11
- Amazon
- CSV
- JSON
Programı çalıştırmadan önce, kullanıcı istediği ürünleri Main.java dosyasındaki productUrls listesine eklemelidir.
Projeyi çalıştırmadan önce, kullanılan Chrome tarayıcı sürümü ile ChromeDriver sürümünün birbirleriyle uyumlu olduğundan emin olunmalıdır. Uyumlu olmayan sürümler programın çalışmasını engelleyebilir. ChromeDriver'ı indirmek için bu bağlantıya gidin ve uygun sürümü indirerek projenin kök dizinine ekleyin. Ardından, Main.java dosyasında System.setProperty("webdriver.chrome.driver", "chromedriver.exe"); satırını güncelleyerek ChromeDriver'ın yolunu belirtin.
Projeyi klonlayın: bash
git clone https://github.com/kullanici_adi/CaseStudy.git
Gerekli bağımlılıkları yükleyin:
mvn install
Main.java dosyasını çalıştırarak projeyi başlatın. Program otomatik olarak belirtilen ürün URL'lerinden veri çekecek, çıktıyı deneme.csv ve deneme.json adlarında dosyalara kaydedecektir.
Distributed under the MIT License. See LICENSE for more information.
Bu projenin bir önceki versiyonu, daha uzun ve performans açısından daha az optimize edilmiş bir şekilde "Before" adı altında bu depoda bulunmaktadır. Güncellenmiş kod, daha az satır kod kullanır ve performans kaybını azaltır.
- Selenium kullanılmadan veri çekmeye yönelik olarak geliştirilmiştir. Ancak, Trendyol web sitesi için tam veri çekimini gerçekleştirebilmek için ChromeDriver kullanımına ihtiyaç duyulmuştur. Trendyol web sitesinin scriptleri yavaş yüklenmesi nedeniyle, veri çekiminin tamamlanabilmesi için sayfanın tamamen yüklenmesini beklemek gerekmektedir. Bu durum, Selenium'un dinamik içerikleri işleme yeteneği sayesinde başarıyla gerçekleştirilmiştir.
- Gürkan Sönmez - Comp Eng - Gürkan Sönmez