Strip ile kısatlma

Arkadaşlar selamlar,

import requests
from bs4 import BeautifulSoup
import pandas as pd
import re

url = "https://www.ambalajstore.com/kategori/karton-bardaklar"
response = requests.get(url)
html_icerigi = response.content
soup = BeautifulSoup(html_icerigi,"html.parser")
fiyat = soup.find_all("div",{"class":"showcase-price-new"})
isim =soup.find_all("div",{"class":"showcase-title"})

liste = list()

for i in range(len(isim)):
    isim[i] = (isim[i].text).strip("\n")
    fiyat[i] = (fiyat[i].text).strip("\n\tdDahil KDV TL")
    liste.append([isim[i],fiyat[i]])

df = pd.DataFrame(liste,columns = ["İsim","Fiyat"])
print(df)

yapmak istediğim bir sayfadan isim ve fiyat alıp df şekline getirmek.

fiyat[i] = (fiyat[i].text).strip("\n\tdDahil KDV TL")

şeklinde silme işlemine başlayınca


şekline kadar getirebildim. Benim ihtiyacım birinci satırdan örnek verecek olursam sadece 21,00 ın kalması ama o kadar ilerleyemedim :slight_smile:

Bana bu konuda yardımcı olabilecek bir arkadaş var mıdır?
Teşekkürler

a = fiyat[i].text.split("+")
fiyat[i] = float((a[0].strip().replace("\n","").replace("\t","").replace(",",".")))
    

Önce stringi + işareti ile bölüp ilk kısmındaki “\n”,"\t" ve boşlukları temizledim. Daha sonra matematiksel işlem yapabilmen için virgülü nokta ile değiştirip değişken türünü floata çevirdim.

0             Karton Bardak 7 Oz Eko (100 Adet)   21.00
1        Karton Otomat Bardak 7 Oz ( 100 Adet )   28.95
2       Karton Otomat Bardak 7 Oz ( 3000 Adet )  769.95
3     2.50 Oz (65 ml) Karton Bardak ( 50 Adet )   13.95
4   2.50 Oz (65 ml) Karton Bardak ( 1000 Adet )  245.95
5             Karton Bardak 16 Oz ( 1000 Adet )  594.95
6         Kalın Karton Bardak 7 Oz ( 100 Adet )   36.95
7        Kalın Karton Bardak 7 Oz ( 3000 Adet )  949.95
8               Karton Bardak 7 Oz ( 100 Adet )   26.50
9               Karton Bardak 9 Oz ( 100 Adet )   49.50
10              Karton Bardak 4 Oz ( 100 Adet )   19.95
11              Karton Bardak 8 Oz ( 100 Adet )   47.75
12              Karton Bardak 12 Oz ( 80 Adet )   34.95
13            Karton Bardak 6.5 Oz ( 100 Adet )   23.50
14             Karton Bardak 7 Oz ( 3000 Adet )  681.95
15             Karton Bardak 9 Oz ( 1000 Adet )  439.95
16             Karton Bardak 4 Oz ( 2000 Adet )  349.95
17             Karton Bardak 8 Oz ( 1000 Adet )  414.95
18            Karton Bardak 12 Oz ( 2000 Adet )  744.95
19           Karton Bardak 6.5 Oz ( 3000 Adet )  609.95
1 Beğeni

Bu da bir ders notu olarak burada yer almış olur :slight_smile:

Teşekkür ederim