Trendyol mağazası olanlar için Ürün fiyatları

trendyoldaki buybox’un basit versiyonu fazla ürünü olan mağazalar için daha hızlı bir fiyat araştırması olabilir…

aynı klasörün içine — trendurunler.xlsx— dosyası oluşturup A sütununa ürün linklerini girmeniz gerekmekte

from parsel import Selector
from openpyxl import load_workbook
import re , requests ,time

while True:
    try:

        saniye = int(input("Kaç Saniyede bir Gösterim Yapılsın ? : "))

        break

    except ValueError:

        print("Tam Sayı Girin !!")

        continue

ac=load_workbook(filename='trendurunler.xlsx')

oku=ac['urunler']

hucreNo=1

while True:

    hucreKontrol = oku['A{}'.format(hucreNo)].value

    if hucreKontrol == None:
        
        print("Kontrol Bitti")
        
        break

    else :
        
        hucreIcı=oku['A{}'.format(hucreNo)].value

        urunAdresi=hucreIcı
        
        baslik = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36'}

        toplama = requests.get(urunAdresi, headers=baslik)

        if toplama.status_code == 200:
            
                    secici = Selector(toplama.text)

                    duzenle = re.compile('<.*?>|&([a-z0-9]+|#[0-9]{1,6}|#x[0-9a-f]{1,6});')

                    urun = secici.css('#product-detail-app > div > div.pr-cn > div.pr-cn-in > div.pr-in-w > div:nth-child(1) > div.pr-in-cn > h1').get()

                    satici = secici.css('#product-detail-app > div > div.pr-cn > div.pr-cn-in > div.pr-in-w > div.pr-in-sl-ar.sl-ar-en > div.pr-in-sl-bx > div.sl-nm').get()

                    pfiyat = secici.xpath('/html/body/div[3]/div/div/div[2]/div[2]/div[1]/div[1]/div[1]/div[2]/div/div/span[1]').get()

                    sfiyat = secici.xpath('/html/body/div[3]/div/div/div[2]/div[2]/div[1]/div[1]/div[1]/div[2]/div/div/span[2]').get()

                    print("Kontrol Edilen Ürün  : ", hucreNo)

                    print("Ürün Adı             : ", duzenle.sub('', urun).strip())

                    print("Ürün Satıcısı        : ", duzenle.sub('', satici).strip())

                    print("Ürün Piyasa Fiyatı   : ", duzenle.sub('', pfiyat).strip())

                    try :

                        print("Ürün Satış  Fiyatı   : ", duzenle.sub('', sfiyat).strip())

                    except:

                        print("Ürün Satış  Fiyatı   : Ürüne İndirim Uygulanmamış")

                        pass

                    print("Ürün Adresi          :", urunAdresi)

                    print("*" * 25)

        else:

            print('Bağlantı kurulamadı! HTTP Kodu: ', toplama.status_code)

        hucreNo+=1

        time.sleep(saniye)
2 Beğeni

Teşekkürler, çok okunaklı yazmışsınız. Daha önce Trendyol Api kullandınız mı acaba?

api’ye ulaşımım olsa denemeler yapmak istiyorum fakat ulaşımım yok…

Hmm, ben ürün fiyatlarını güncellemek istiyorum ama hata alıyorum. Belki yardımcı olabilirsiniz diye soracaktım. Hata açıklaması da çok detaylı değil. Sadece “Beklenmedik istisna” diyor.

b'{"timestamp":1598627729280,
"exception":"GenericException","errors"
[{"key":"generic.error",
"message":"Unexpected exception occurred. Try again later.",
"args":[]}]}'

hiç incelemedeim daha önce o yüzden yardımcı olamayacağım

1 Beğeni

başarılı bir çalışma takdir ettim. güncellenen ve gelişen halini de bekliyorum.

1 Beğeni

Kendi kodumdan başkasınınkini okuamıyordum (genelde).Ama öyle güzel yazmışsınız ki… Sanki normal bir paragraf gibi.Hele şu küçük harfle başlayıp 2. kelimeyi büyük harfle yazmak… Sahi o tekniğin adı neydi?

camelCase

2 Beğeni

Bu teknik java’da da kullaniliyor. Ama pep 8’de bu gecmiyor diye biliyorum. Pep 8 alt cizgi diyor.

Doğru söylüyorsunuz.

burada gelen verileri tkinter’da ekrana nasıl yazdırabilirim ???

önce bir pencere açılması lazım
kodların bazı parçalarının değiştirilip button eklenmesi lazım
biraz uzun iş…

Haklısın biraz uzun oldu ama o işlemleri yapmıştım…
Sadece dönen veriyi yazdıramamıştım

import tkinter as tk
from tkinter import *


def trendyol():
    print("Trendyol Geldi")


def hepsiBurada():
    print("hepsiburada geldi")


def gittiGidiyor():
    print("gittigidiyor geldi")


def n11():
    print("n11 geldi")


def temizle():
    print("Temizle Geldi")
    sagBolge.delete("1.0", tk.END)


def cik():
    anaPencere.destroy()



anaPencere=tk.Tk()
anaPencere.geometry("760x440")
anaPencere.title("Pazar Yeri Fiyatları")
anaPencere.iconbitmap(r'C:\Users\pc\Desktop\den\venv\icon.ico')

sagBolge=Text(anaPencere)
sagBolge.grid(column=0,row=0,padx=5,pady=5)

solDugmeler=Frame(anaPencere)
solDugmeler.grid()

trenyolDugme=Button(solDugmeler,command=trendyol,text="Trendyol",height=1,width=15)
trenyolDugme.grid(column=1,row=1,padx=5,pady=5)

hepsiBuradaDugme=Button(solDugmeler,command=hepsiBurada,text="Hepsi Burada",height=1,width=15)
hepsiBuradaDugme.grid(column=2,row=1,padx=5,pady=5)

n11Dugme=Button(solDugmeler,command=n11,text="N11",height=1,width=15)
n11Dugme.grid(column=3,row=1,padx=5,pady=5)

gittiGidiyorDugme=Button(solDugmeler,command=gittiGidiyor,text="Gitti Gidiyor",height=1,width=15)
gittiGidiyorDugme.grid(column=4,row=1,padx=5,pady=5)

temizleDugme=Button(solDugmeler,command=temizle,text="Listeyi Temizle",height=1,width=15)
temizleDugme.grid(column=5,row=1,padx=5,pady=5)

cikDugme=Button(solDugmeler,command=cik,text="Çıkış Yap",height=1,width=15)
cikDugme.grid(column=6,row=1,padx=5,pady=5)







anaPencere.protocol('WM_DELETE_WINDOW',cik)

anaPencere.mainloop()