Neler Yeni

Öneri Chatgpt kullanarak amazon indirimli ürünleri listeleyen code yazdım.

PcKedy

80+
Katılım
12 Mart 2023
Mesajlar
13
Dahası  
Reaksiyon skoru
13
İsim
nurullah
Merhaba Daha önceden Trendyol olanı için yapmıştım ama amazon yapman daha mantıklı olur dendi bende amazon olanını yaptım.

önceki attığım konum burada!


KODUN AMAZON İNDİRİMLİ ÜRÜNLERİ LİSTELEDİĞİ EXCEL DOSYASI ÖRNEK:



kurulum:

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

BeautifulSoup,bs4,pandas,requests,openpyxl,xlsxwriter

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 dosyasının bulunduğu yere komut istemi (cmd) açıpta çalıştırabilirsiniz)
onu nasıl yaparsınız onu anlatıyım:

bir klasöre girin üste diziin yazan yere (C:\Users\Administrator\Desktop\python) yani buraya (cmd yazın ve enterlayın)
sonra python dosyaismi.py diyip çalıştırın.

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

headers = {
    'accept-language': 'tr-TR,tr;q=0.9',
    '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',
    'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'accept-encoding': 'gzip, deflate, br'
}

url = 'https://www.amazon.com/s?i=electronics-intl-ship&bbn=16225009011&rh=n%3A16225009011%2Cn%3A541966&page=2&language=en_US&currency=TRY&qid=1679175799&ref=sr_pg_{}'

data = []

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

    products = soup.find_all('div', {'class': 'a-section a-spacing-base'})

    for product in products:
        try:
            name = product.find('span', {'class': 'a-size-base-plus a-color-base a-text-normal'}).text.strip()
            original_price = float(product.find('span', {'class': 'a-price a-text-price'}).find('span', {'class': 'a-offscreen'}).text.replace('$', ''))
            discounted_price = float(product.find('span', {'class': 'a-price'}).find('span', {'class': 'a-offscreen'}).text.replace('$', ''))

            difference = original_price - discounted_price
            difference_percent = round((difference / original_price) * 100)

            data.append([name, original_price, discounted_price, difference, difference_percent])
        except AttributeError:
            continue

df = pd.DataFrame(data, columns=['Ürün İsmi', 'Orjinal Fiyatı', 'İndirimli Fiyatı', 'İndirim Farkı', 'İndirim Oranı'])

# Fiyat sütunlarına dolar işareti ekle
df[['Orjinal Fiyatı', 'İndirimli Fiyatı', 'İndirim Farkı']] = df[['Orjinal Fiyatı', 'İndirimli Fiyatı', 'İndirim Farkı']].applymap('${:,.2f}'.format)

# İndirim Oranı sütununa yüzdelik işareti ekle
df['İndirim Oranı'] = df['İndirim Oranı'].apply(lambda x: str(x) + '%')

# Verileri Excel dosyasına kaydet
writer = pd.ExcelWriter('Amazon_İndirimli_Ürün_Listesi.xlsx', engine='xlsxwriter')
df.to_excel('Amazon_İndirimli_Ürün_Listesi.xlsx', index=False, engine='openpyxl')

yapmanız gereken 2 değişiklik var 1. url 2. ise kaç sayfa veri çekceğini ayarlamaktır

amazonda bir kategori seçtiniz ve filtrelediniz biraz aşağı inip 2. sayfaya geçiyoruz ve url sonu pg_5 şeklinde bitecek bunu koddaki url ye ekliyoruz ama 5 kısmını siliyoruz. (tamamen örnektir.)

Kod:
url = 'https://www.amazon.com/s?i=electronics-intl-ship&bbn=16225009011&rh=n%3A16225009011%2Cn%3A541966&page=2&language=en_US&currency=TRY&qid=1679175799&ref=sr_pg_{}'
sonraki değiştireceğimiz şey ise sayfa aralığı 1 ile 6 sayfalarının hepsini listelesin dersek 1-5 daki tüm indirimli ürünleri listeler

örnek:
Kod:
for page in range(1, 6)

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

ve biraz bekleyin listeleyip excele aktarsın.

UMARIM İYİ ANLATABİLMİŞİMDİR.
 
Son düzenleme:

uomerlutfi

80+ Silver
Katılım
23 Mart 2020
Mesajlar
2,456
Dahası  
Reaksiyon skoru
1,132
Konum
ANTALYA-KASTAMONU
İsim
Ömer Lütfi Ülker
İlgilendiği Kategoriler
bilgisyaarlar - bilgisayar bileşenleri
Instagram
instagram.com/omerlutfiulker
vay denyıyorum hemen :D
 

PcKedy

80+
Katılım
12 Mart 2023
Mesajlar
13
Dahası  
Reaksiyon skoru
13
İsim
nurullah
  • Konu Sahibi Konu Sahibi
  • #3
Denedikten sonra nasıl işey yararmı herhangi bir yorum eklermisin.
 

uomerlutfi

80+ Silver
Katılım
23 Mart 2020
Mesajlar
2,456
Dahası  
Reaksiyon skoru
1,132
Konum
ANTALYA-KASTAMONU
İsim
Ömer Lütfi Ülker
İlgilendiği Kategoriler
bilgisyaarlar - bilgisayar bileşenleri
Instagram
instagram.com/omerlutfiulker
Merhaba Daha önceden Trendyol olanı için yapmıştım ama amazon yapman daha mantıklı olur dendi bende amazon olanını yaptım.

önceki attığım konum burada!


KODUN AMAZON İNDİRİMLİ ÜRÜNLERİ LİSTELEDİĞİ EXCEL DOSYASI ÖRNEK:



kurulum:

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

BeautifulSoup,bs4,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 dosyasının bulunduğu yere komut istemi (cmd) açıpta çalıştırabilirsiniz)
onu nasıl yaparsınız onu anlatıyım:

bir klasöre girin üste diziin yazan yere (C:\Users\Administrator\Desktop\python) yani buraya (cmd yazın ve enterlayın)
sonra python dosyaismi.py diyip çalıştırın.

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

headers = {
    'accept-language': 'tr-TR,tr;q=0.9',
    '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',
    'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'accept-encoding': 'gzip, deflate, br'
}

url = 'https://www.amazon.com/s?i=electronics-intl-ship&bbn=16225009011&rh=n%3A16225009011%2Cn%3A541966&page=2&language=en_US&currency=TRY&qid=1679175799&ref=sr_pg_{}'

data = []

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

    products = soup.find_all('div', {'class': 'a-section a-spacing-base'})

    for product in products:
        try:
            name = product.find('span', {'class': 'a-size-base-plus a-color-base a-text-normal'}).text.strip()
            original_price = float(product.find('span', {'class': 'a-price a-text-price'}).find('span', {'class': 'a-offscreen'}).text.replace('$', ''))
            discounted_price = float(product.find('span', {'class': 'a-price'}).find('span', {'class': 'a-offscreen'}).text.replace('$', ''))

            difference = original_price - discounted_price
            difference_percent = round((difference / original_price) * 100)

            data.append([name, original_price, discounted_price, difference, difference_percent])
        except AttributeError:
            continue

df = pd.DataFrame(data, columns=['Ürün İsmi', 'Orjinal Fiyatı', 'İndirimli Fiyatı', 'İndirim Farkı', 'İndirim Oranı'])

# Fiyat sütunlarına dolar işareti ekle
df[['Orjinal Fiyatı', 'İndirimli Fiyatı', 'İndirim Farkı']] = df[['Orjinal Fiyatı', 'İndirimli Fiyatı', 'İndirim Farkı']].applymap('${:,.2f}'.format)

# İndirim Oranı sütununa yüzdelik işareti ekle
df['İndirim Oranı'] = df['İndirim Oranı'].apply(lambda x: str(x) + '%')

# Verileri Excel dosyasına kaydet
writer = pd.ExcelWriter('Amazon_İndirimli_Ürün_Listesi.xlsx', engine='xlsxwriter')
df.to_excel('Amazon_İndirimli_Ürün_Listesi.xlsx', index=False, engine='openpyxl')

yapmanız gereken 2 değişiklik var 1. url 2. si ise url (kategorinin kaç tanesini çekmek istiyorsanız onu değiştirmeniz)

amazonda bir kategori seçtiniz ve filtrelediniz biraz aşağı inip 2. sayfaya geçiyoruz ve url sonu pg_5 şeklinde bitecek bunu koddaki url ye ekliyoruz ama 5 kısmını siliyoruz. (tamamen örnektir.)

Kod:
url = 'https://www.amazon.com/s?i=electronics-intl-ship&bbn=16225009011&rh=n%3A16225009011%2Cn%3A541966&page=2&language=en_US&currency=TRY&qid=1679175799&ref=sr_pg_{}'
sonraki değiştireceğimiz şey ise sayfa aralığı 1 ile 6 sayfalarının hepsini listelesin dersek 1-5 daki tüm indirimli ürünleri listeler

örnek:
Kod:
for page in range(1, 6)

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

ve biraz bekleyin listeleyip excele aktarsın.

UMARIM İYİ ANLATABİLMİŞİMDİR.
anlamadııgm değişikliklerde 2 defa url demıssın burda tam olarak neyı kast ettın?
 

PcKedy

80+
Katılım
12 Mart 2023
Mesajlar
13
Dahası  
Reaksiyon skoru
13
İsim
nurullah
  • Konu Sahibi Konu Sahibi
  • #7
anlamadııgm değişikliklerde 2 defa url demıssın burda tam olarak neyı kast ettın?
2. url yani kategorinin url sinin sonunda pg_5 yazıyor mesela onu değiştirmekten bahsettim orada kafa karıştırıyorsa kaldırım
 

uomerlutfi

80+ Silver
Katılım
23 Mart 2020
Mesajlar
2,456
Dahası  
Reaksiyon skoru
1,132
Konum
ANTALYA-KASTAMONU
İsim
Ömer Lütfi Ülker
İlgilendiği Kategoriler
bilgisyaarlar - bilgisayar bileşenleri
Instagram
instagram.com/omerlutfiulker
2. url yani kategorinin url sinin sonunda pg_5 yazıyor mesela onu değiştirmekten bahsettim orada kafa karıştırıyorsa kaldırım
1679178364862.png

bu hatayı aldım bunun çözümü hakkında bilgin varmı
sanırım tl dönüşümü yaaprken sıkııntı cıkıyor
 

PcKedy

80+
Katılım
12 Mart 2023
Mesajlar
13
Dahası  
Reaksiyon skoru
13
İsim
nurullah
  • Konu Sahibi Konu Sahibi
  • #9
Alıntıyı görüntüle
bu hatayı aldım bunun çözümü hakkında bilgin varmı
sanırım TL dönüşümü yaaprken sıkııntı cıkıyor
evet o sorunu çözemedim tl olarak dönüşüm yapamıyor lütfen normal amazon defult yani dolar kurundan gösteren url sini atarsan sorun düzelicektir diye düşünüyorum.
 

uomerlutfi

80+ Silver
Katılım
23 Mart 2020
Mesajlar
2,456
Dahası  
Reaksiyon skoru
1,132
Konum
ANTALYA-KASTAMONU
İsim
Ömer Lütfi Ülker
İlgilendiği Kategoriler
bilgisyaarlar - bilgisayar bileşenleri
Instagram
instagram.com/omerlutfiulker
evet o sorunu çözemedim TL olarak dönüşüm yapamıyor lütfen normal amazon defult yani dolar kurundan gösteren url sini atarsan sorun düzelicektir diye düşünüyorum.
tamamdır bakıyorum
Mesaj otomatik birleştirildi:

bu seferde turkıye de kullanmamız mumkun olmuyor dığru anladıysam amazon globalden bir link koyarsak yani
 

PcKedy

80+
Katılım
12 Mart 2023
Mesajlar
13
Dahası  
Reaksiyon skoru
13
İsim
nurullah
tamamdır bakıyorum
Mesaj otomatik birleştirildi:

bu seferde turkıye de kullanmamız mumkun olmuyor dığru anladıysam amazon globalden bir link koyarsak yani
size video atabilirmiyim. nasıl yapıldığına dair isterseniz.
 

Skydep

80+
Katılım
25 Şubat 2023
Mesajlar
15
Dahası  
Reaksiyon skoru
3
İsim
Skydep skydep
Koddaki url'i değiştirmek isteyen arkadaşlar url'in ortasında page=2 diye bir yer var oraya da {} koyup altta format olarak vermelisiniz.
Yoksa sadece 1 sayfa üzerinden işlem yaparsınız. sondaki sg_pg sayfaları değiştirmez
 

uomerlutfi

80+ Silver
Katılım
23 Mart 2020
Mesajlar
2,456
Dahası  
Reaksiyon skoru
1,132
Konum
ANTALYA-KASTAMONU
İsim
Ömer Lütfi Ülker
İlgilendiği Kategoriler
bilgisyaarlar - bilgisayar bileşenleri
Instagram
instagram.com/omerlutfiulker
url yı hallettık bu sefer de excel olusturuken hata verıyor :D ulan bu pythondan bıktıgm kadar baska dil den bıkmadım
Mesaj otomatik birleştirildi:

1679178970735.png
 
Top Bottom