Home>>Python>>BeautifulSoup İle Web Scraping | Kitapyurdu Çok Satanlar Listesi
PythonWeb Scraping

BeautifulSoup İle Web Scraping | Kitapyurdu Çok Satanlar Listesi

Merhaba,
Python’da BeautifulSoup modülü kullanarak, kitapyurdu ‘nda çok satılanlar listesini Web Scraping işlemi ile nasıl çekebileceğimizi ve nasıl CSV dosyasına kayıt edeceğimizi anlatacağım.

İlk olarak gerekli modülleri aşağıdaki gibi kuralım;

pip install requests
pip install beautifulsoup4
pip install python-csv

Daha sonra modülleri import edelim;

import requests
from bs4 import BeautifulSoup
import csv

Çekeceğimiz sayfanın yani kitapyurdu ‘nun URL adresini yazıyoruz. URL sonunda dikkat ederseniz limit 25 yazıyor. Siteyi ziyaret ettiğimizde Göster filtresinden istediğiniz sayıyı seçebilir, seçtiğiniz kadar liste limitini belirleyebilirsiniz.

url = "https://www.kitapyurdu.com/index.php?route=product/best_sellers&list_id=1&filter_in_stock=1&filter_in_stock=1&limit=25"

Mevcut user-agent‘inizi görmek için Google‘a What is My User Agent yazarak öğrenebilirsiniz.

headers = {"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.141 Safari/537.36"}
r = requests.get(url, headers=headers).content
soup = BeautifulSoup(r, "html.parser")

Bu kısımda, döngüde toplanan verileri listeye eklememiz gerekiyor. Bu yüzden önce listeleri tanımladık.

fiyat = []
yazar = []
yayın = []
s = 1
s2 = 0

Çekeceğimiz etiketleri yazıyoruz.

pricenew = soup.find_all("div", {"class":"price-new"})

author = soup.find_all("div", {"class":"author compact ellipsis"})
publisher = soup.find_all("div", {"class":"publisher"})
list = soup.find_all("div", {"class":"name ellipsis"})

CSV dosyasını oluşturup başlıkları giriyoruz.

file = open("Desktop/kitap.csv","w", newline= "", encoding='utf-8')
writer = csv.writer(file)
writer.writerow(["ID","Kitap Adı", "Yazar", "Yayıncı", "Bağlantı URL", "Fiyat"])

Artık etiketlere find yaparak istediğimiz verileri çekebiliriz.


for döngüsü kullanarak istediğimiz verileri çekip for i in list: kısmında, listeye eklediğimiz verileri CSV dosyasına yazdırıyoruz.

for i in pricenew:
    price = i.find("span", {"class":"value"})
    fiyat.append(price.text.strip().replace(",",".")+" TL")

for i in author:
    yazr = i.find("a", {"class":"alt"})
    yazar.append(yazr.text.strip())

for i in publisher:
    yayinci= i.find("a", {"class":"alt"})
    yayın.append(yayinci.text.strip())

for i in list:
    title = i.find("span").text.strip()
    link = i.find("a").get("href")

    writer.writerow([s, title, yazar[s2], yayın[s2], link, fiyat[s2]])
    s2 += 1
    s += 1
print("Bitti")

Ve çıktımız masaüstünde kitap.csv olarak kayıtlı.

BeautifulSoup modülü hakkında daha fazlası için tıklayın

Tüm kodlara ulaşmak için Github’a Göz Atın.

Diğer projelere ulaşmak için tıklayın.

Adblock Detected

Lütfen reklam engelleyicinizi devre dışı bırakarak bizi destekleyin.

Refresh Page