Chatgpt kullanarak trendol indirimleri listeleyen ve excele atan code yazdım.

PcKedy

80+
Katılım
12 Mart 2023
Mesajlar
13
Reaksiyon skoru
13
Ne kadar İşinize Yarar Bilmiyorum

öncelikle python 3 kurmanız ve şu kütüphaneleri yüklemeniz lazım

BeautifulSoup,pandas,requests,openpyxl

kütüphane nasıl yüklenir:

python yükledikten sonra herhangi bir yerden cmd açıp

pip install kütüphane ismi

birde python editörü lazım visual code indirebilirsniz.

Kod:
import requests
from bs4 import BeautifulSoup
import pandas as pd

headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36",
    "Upgrade-Insecure-Requests": "1",
    "Referer": "https://www.trendyol.com/",
    "Accept-Encoding": "gzip, deflate, br",
    "Accept-Language": "tr-TR,tr;q=0.9,en-US;q=0.8,en;q=0.7",
}

url = "https://www.trendyol.com/oyuncu-donanimlari-x-c144420?pi={page}"

liste = list()

for page in range(1, 21):  # İlk 5 sayfa için listeleme yapılıyor
    r = requests.get(url.format(page=page), headers=headers)
    soup = BeautifulSoup(r.content, "html.parser")

    ürünler = soup.find_all("div", attrs={"class": "p-card-chldrn-cntnr"})

    for ürün in ürünler:
        try:
            ürünismi = ürün.find("span", attrs={"class": "prdct-desc-cntnr-name hasRatings"}).text.strip()
            orjinal_fiyat = ürün.find("div", attrs={"class": "prc-box-orgnl"}).text.strip("\n").replace("\nTL"," TL").strip()
            indirimli_fiyat = ürün.find("div", attrs={"class": "prc-box-dscntd"}).text.strip("\n").replace("\nTL"," TL").strip()
            fark = float(orjinal_fiyat.replace(' TL','').replace('.','').replace(',','.')) - float(indirimli_fiyat.replace(' TL','').replace('.','').replace(',','.'))
            fark = '{:.2f}'.format(fark).replace('.',',') + ' TL'
            liste.append([ürünismi, orjinal_fiyat, indirimli_fiyat, fark])
        except:
            continue

df = pd.DataFrame(liste,columns = ["Ürün İsmi","Orjinal Fiyat","İndirimli Fiyat", "Fark"])
df.to_excel('ürünler.xlsx', index=False)
yapmanız gereken 2 değişiklik var 1. url


trendyolda bir kategori seçtiniz ve filtrelediniz biraz aşağı inip 2. sayfaya geçiyoruz ve url sonu &pi=2 şeklinde bitecek bunu koddaki url ye ekliyoruz ama 2 kısmını siliyoruz.
örnek:

Kod:
url = "https://www.trendyol.com/sr?wc=108443&qt=ekran+kartlar%C4%B1&st=ekran+kartlar%C4%B1&attr=131%7C1756&os=1&pi={page}"

sonraki değiştireceğimiz şey ise sayfa aralığı 1 ile 11 sayfalarının hepsini listelesin dersek 1-10 daki tüm indirimli ürünleri listeler
örnek:
Kod:
for page in range(1, 11)

son işlem çalıştırmak.

ve biraz bekleyin listeleyip excele aktarsın.
 
bunun amazon için olanı lazım trendyol iptal ediyor zaten eline sağlık
 
Geri
Top