Python Ürünleri karşılaştırma sistemi nasıl yapılır?

krizx100

Kilopat
Katılım
16 Şubat 2018
Mesajlar
73
Daha fazla  
Cinsiyet
Erkek
Merhaba değerli forum sakinleri. Günlerdir aslında kolay olduğunu düşündüğüm bir sorunumu sizlerle paylaşıp tavsiyelerinizi istiyorum. Trendyol'dan bir ürünün örneğin tişört olsun farklı renklerinin farklı bedenleri var ve tüm renk ve bedenlerinde kendine ait fiyatı var bunu kod ile tüm renk beden fiyatlarını nasıl alabilirim? Bir türlü bulamadım.
Verileri tişörtün ana URL'si ile çekelim. URL'yi her zaman kullanıcı versin ilk rengin tüm bedenlerinin fiyatını alsın sonra bir diğer renge geçsin, böyle devam etsin renkler bitene kadar.

Her rengin her bedeninin karşısına fiyatını yazıp alt alta bedenleri sıralasın.

Örnek verecek olursam.

4 farklı rengi olan bir tişört olsun.
Siyah beyaz sarı turuncu.
Trendyolcom/x/tişörtü/siyah ana URL'sinden.

URL ile gelen siyah rengin beden fiyat bilgilerini alalım.
Beden s 300TL.
Beden m 320TL.
Beden l 310TL.
Beden XL 320TL.
Sonra.
Beyazın bedenler fiyatlar bilgisini alalım.
Sonra.
Sarının.
Sonra.
Turuncunun.

Ben Python kullanarak request ve Beautiful Soup kütüphanesi ile denedim başka yolda olabilir fark etmez yeter ki alayım.
 
Son düzenleyen: Moderatör:
Merhaba değerli forum sakinleri günlerdir aslında kolay olduğunu düşündüğüm bir sorunumu sizlerle paylaşıp tavsiyelerinizi istiyorum Trendyol'dan bir ürünün örneğin tişört olsun farklı renklerinin farklı bedenleri var ve tüm renk ve bedenlerinde kendine ait fiyatı var bunu kod ile tüm renk beden fiyatlarını nasıl alabilirim bir türlü bulamadım.
Verileri tişörtün ana URL'si ile çekelim URL'yi her zaman kullanıcı versin ilk rengin tüm bedenlerinin fiyatını alsın sonra bir diğer renge geçsin böyle devam etsin renkler bitene kadar.

Her rengin her bedeninin karşısına fiyatını yazıp alt alta bedenleri sıralasın.

Örnek verecek olursam.

4 farklı rengi olan bir tişört olsun.
Siyah beyaz sarı turuncu.
Trendyolcom/x/tişörtü/siyah ana URL'sinden.

URL ile gelen siyah rengin beden fiyat bilgilerini alalım.
Beden s 300TL.
Beden m 320TL.
Beden l 310TL.
Beden XL 320TL.
Sonra.
Beyazın bedenler fiyatlar bilgisini alalım.
Sonra.
Sarının.
Sonra.
Turuncunun.

Ben Python kullanarak request ve Beautiful Soup kütüphanesi ile denedim başka yolda olabilir fark etmez yeter ki aliyim.

Bu biraz zor bir proje. Trendyol'un bu sistemi deteklemiyor olabilir.
 
Request ve bs4 ile denediğinizde nasıl bir sorunla karşılaştınız? Trendyol JavaScript değilse request yeterli olmalı. Olmadı selenium kullanın.
 
Request ve bs4 ile denediğinizde nasıl bir sorunla karşılaştınız? Trendyol JavaScript değilse request yeterli olmalı. Olmadı selenium kullanın.
Trendyol ürünlerin renklerini ve modellerini JS ile getirip sizi başka bi linke forward ediyor. Sayfanın HTML kodunun içinde bu veriler bulunmuyor veya karmaşık bir halde bulunuyor, arkadaş ondan sorun yaşadı muhtemelen.

Bir ihtimal Selenium ile titlelar üzerinden linkleri identify edip. Ardından tek tek price için gerekli etiketi çekersin BS4 ile ama çok fazla veri geliyor bir anda. Parser ederken cortlayabilir.

1713359447844.png
 
Son düzenleme:
Bu biraz zor bir proje. Trendyol'un bu sistemi deteklemiyor olabilir.
destekliyor şurdan biliyorum birisi bunu yapıp çıktısını aldı ve o daha detaylı aldı başka verilerle birlikte

Request ve bs4 ile denediğinizde nasıl bir sorunla karşılaştınız? Trendyol JavaScript değilse request yeterli olmalı. Olmadı selenium kullanın.
kod olarak paylaşabilirmisiniz rica etsem ben amatörüm bu konuda

Trendyol ürünlerin renklerini ve modellerini JS ile getirip sizi başka bi linke forward ediyor. Sayfanın HTML kodunun içinde bu veriler bulunmuyor veya karmaşık bir halde bulunuyor, arkadaş ondan sorun yaşadı muhtemelen.

Bir ihtimal Selenium ile titlelar üzerinden linkleri identify edip. Ardından tek tek price için gerekli etiketi çekersin BS4 ile ama çok fazla veri geliyor bir anda. Parser ederken cortlayabilir.

Eki Görüntüle 2171020
beni mazur görün pek bilgili değilim amatör olarak uğraşıyorum biraz daha açıklayabilirmisiniz sizden ricam
 
Yeterli bilginiz yok gibi böyle bir proje başlangıç seviyesinde birisi için zorlayıcı olabilir. Önce Web Scraping öğrenmeniz lazım.
 
Trendyol ürünlerin renklerini ve modellerini JS ile getirip sizi başka bi linke forward ediyor. Sayfanın HTML kodunun içinde bu veriler bulunmuyor veya karmaşık bir halde bulunuyor, arkadaş ondan sorun yaşadı muhtemelen.

Bir ihtimal Selenium ile titlelar üzerinden linkleri identify edip. Ardından tek tek price için gerekli etiketi çekersin BS4 ile ama çok fazla veri geliyor bir anda. Parser ederken cortlayabilir.

Eki Görüntüle 2171020
O zaman mecbur Selenium hocam.

destekliyor şurdan biliyorum birisi bunu yapıp çıktısını aldı ve o daha detaylı aldı başka verilerle birlikte


kod olarak paylaşabilirmisiniz rica etsem ben amatörüm bu konuda


beni mazur görün pek bilgili değilim amatör olarak uğraşıyorum biraz daha açıklayabilirmisiniz sizden ricam
Böyle bir proje yapmak istiyorsanız, oturup selenium öğrenin hocam. Amacınız öğrenmekse sorun yok, eğer projeyi yapmak istiyorsanız freelancer arayabilirsiniz. Bionluk gibi web sitelerinden bulabilirsiniz.
 
Bunu kod halinde paylaşabilir misiniz sadece renk değişiminin olduğu kodu geriye kalan verileri ben hallederim.

Bunu yapanlar var oluyor bende yapabilmek için günlerdir uğraşıyorum inanın çok istediğim bir şey inat ettim uygulamam lazım kodlarına uygulanışına konumun içeriği değil de amacım ben kodlamasam da diğer kodlarla birleştirip çalıştığını görmek başarmak.

@krizx100 @MidI0ck @velydagi
 
Son düzenleme:
Hocam 3. Mesajdaki arkadaş zaten açıklamış, isterseniz daha detaylı anlatayım.

Trendyol "renk" seçeneklerine tıklandığında JavaScript çalıştırdığı için request ile direkt link alıp yapamıyorsunuz. Selenium kullanıp, gerekli yerlere "Click atıp" verileri çekmeniz lazım. Yani şu ana kadar öğrendiğiniz ve yaptığınız request kodunu, Selenium'a entegre edeceksiniz. En temel fark renk seçerken bot tıklama işlemi yapacak o kadar.
 
DevTools Network kısmını iyi kullanmak ve web işlerinden de anlamak lazım.
Trendyolda herhangi bir ürüne tıkladım ve alttaki endpoint'e ulaştım.

Şuana kadar basit şey. Fakat URL de yazan 527.. ile başlayan id product-group-id değeri. Peki bunu nasıl bulurum diye baktım. Hiçbir network isteğinde bu değeri bulamadım. Anladım ki bu değer SSR (Server Side Rendering) ile gelmiş. html inspectten element attribute değerlere biraz göz gezdirdim fakat gözüme çarpan bir id bulamadım. O zaman diğer yöntem olarak JavaScript değişkenlerine bakmam lazımdı. Console'a window.product yazdığımda __PRODUCT_DETAIL_APP_INITIAL_STATE__ değişkenini buldum. Tadaa. İşte productGroupId değeri burada.
Biraz değişkeni inceledim ve endpointe bile gerek kalmadı :d Tüm istediğin veriler alttaki değişkende;
variant adlı değişkende de beden, renk gibi zımbırtılar var.
Kod:
window.__PRODUCT_DETAIL_APP_INITIAL_STATE__.product

Artık product sayfasını render eder ve alttaki değeri alırsın.

Edit: Renk verileri yok galiba. variant sadece o ürüne ait beden bilgisini veriyormuş. Biraz detaylı bakmak lazım fakat renk yoksa üstteki endpointe groupId gönderilirse tüm renk ve beden fiyatları gelmesi lazım.
 
Son düzenleme:

Geri
Yukarı