• 13-09-2024, 02:33:02
    #1
    Merhaba arkadaşlar,
    Aşağıda, Trendyol'dan bir ürünün bilgilerini çekmek için kullanabileceğiniz bir Python kodu örneği paylaşıyorum. Bu kod, belirli bir ürün sayfasının HTML içeriğini alır, BeautifulSoup ile parse eder ve ürün bilgilerini JSON formatında çıkarır.
    Kodun detayları şu şekildedir:
    1. Kütüphaneler:
      • requests: Web sayfasının HTML içeriğini almak için.
      • BeautifulSoup: HTML içeriğini parse etmek için.
      • json: JSON verisini işlemek için.
    2. Kullanılan URL: Ürün sayfasının URL'si doğrudan url değişkenine atanmıştır.
    3. İşlemler:
      • HTML içeriği çekilir.
      • BeautifulSoup ile HTML içeriği parse edilir.
      • JSON script verisi bulunur ve işlenir.
      • Ürün bilgileri (isim, üretici, açıklama, SKU, kategori, marka, fiyat, vb.) çıkartılır ve ekrana yazdırılır.

    Kodun tamamı:

    import requests
    from bs4 import BeautifulSoup
    import json
    
    # Ürün sayfasının URL'si
    url = 'https://www.trendyol.com/life-net-medikal/pulse-oksimetre-tasinabilir-parmak-tipi-pfx-033-p-43700190'
    
    # URL'den HTML içeriği çekiyoruz
    response = requests.get(url)
    html_content = response.text
    
    # BeautifulSoup ile HTML içeriğini parse ediyoruz
    soup = BeautifulSoup(html_content, 'html.parser')
    
    # JSON script verisini buluyoruz
    script_tag = soup.find('script', type='application/ld+json')
    
    if script_tag:
        # JSON verisini çıkartıyoruz
        json_data = json.loads(script_tag.string)
    
        # Ürün bilgilerini çekiyoruz
        def print_product_info(data):
            print("Ürün Adı:", data.get('name', 'Bilgi Yok'))
            print("Üretici:", data.get('manufacturer', 'Bilgi Yok'))
            print("Açıklama:", data.get('description', 'Bilgi Yok'))
            print("SKU:", data.get('sku', 'Bilgi Yok'))
            print("Kategori:", data.get('pattern', 'Bilgi Yok'))
            print("Marka:", data.get('brand', {}).get('name', 'Bilgi Yok'))
            print("Fiyat: {} {}".format(data.get('offers', {}).get('price', 'Bilgi Yok'), data.get('offers', {}).get('priceCurrency', 'TRY')))
            print("Ürün Durumu: Yeni")
            print("Stok Durumu: Stokta Var")
            print("Satış Linki:", data.get('offers', {}).get('url', 'Bilgi Yok'))
            print("İade Politikası:")
            print("  - Ülke: {}".format(data.get('offers', {}).get('hasMerchantReturnPolicy', {}).get('applicableCountry', 'Bilgi Yok')))
            print("  - İade Süresi: {} gün".format(data.get('offers', {}).get('hasMerchantReturnPolicy', {}).get('merchantReturnDays', 'Bilgi Yok')))
            print("  - İade Ücreti: Ücretsiz")
            print("  - İade Yöntemleri: Kiosk Üzerinden, Posta ile")
            print("  - Mağazada İade Yok: Hayır")
            print("  - İade Yardım Linki:", data.get('offers', {}).get('hasMerchantReturnPolicy', {}).get('merchantReturnLink', 'Bilgi Yok'))
            print("Kargo Bilgileri:")
            print("  - Kargo Ücreti: {} {}".format(data.get('offers', {}).get('shippingDetails', {}).get('shippingRate', {}).get('value', 'Bilgi Yok'), data.get('offers', {}).get('shippingDetails', {}).get('shippingRate', {}).get('currency', 'TRY')))
            print("  - Kargo Teslimat Süresi: {} - {} iş günü".format(data.get('offers', {}).get('shippingDetails', {}).get('deliveryTime', {}).get('transitTime', {}).get('minValue', 'Bilgi Yok'), data.get('offers', {}).get('shippingDetails', {}).get('deliveryTime', {}).get('transitTime', {}).get('maxValue', 'Bilgi Yok')))
            print("Ürün Resimleri:")
            for i, img_url in enumerate(data.get('image', {}).get('contentUrl', []), start=1):
                print("  - Resim {}: {}".format(i, img_url))
    
        print_product_info(json_data)
    else:
        print("JSON verisi bulunamadı.")
  • 13-09-2024, 03:11:42
    #2
    teşekkürler
  • 13-09-2024, 19:56:38
    #3
    Paylaşım için teşekkürler. Zamanınız olursa bir sorum var konu ile alakalı.
    Öncelikle yeni yeni öğreniyorum bunu belirteyim.

    Geçenlerde bir şeyler yazıp Trendyol'dan veri çekmeye çalıştım.
    Herhangi bir kategoriden sıkıntısız veri çekebiliyorum fakat arama kısmına bir kelime yazıp aradığım zaman o sayfadaki verileri çekemiyorum sebebi ne olabilir ?
  • 13-09-2024, 22:59:46
    #4
    FBLL adlı üyeden alıntı: mesajı görüntüle
    Paylaşım için teşekkürler. Zamanınız olursa bir sorum var konu ile alakalı.
    Öncelikle yeni yeni öğreniyorum bunu belirteyim.

    Geçenlerde bir şeyler yazıp Trendyol'dan veri çekmeye çalıştım.
    Herhangi bir kategoriden sıkıntısız veri çekebiliyorum fakat arama kısmına bir kelime yazıp aradığım zaman o sayfadaki verileri çekemiyorum sebebi ne olabilir ?
    apiler değişmiş olabilir