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:
- 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.
- Kullanılan URL: Ürün sayfasının URL'si doğrudan url değişkenine atanmıştır.
- İş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ı.")