-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathweb_scrapping.py
More file actions
43 lines (32 loc) · 1.5 KB
/
Copy pathweb_scrapping.py
File metadata and controls
43 lines (32 loc) · 1.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
import requests
from bs4 import BeautifulSoup
import csv
# Web sayfasının URL'si
url = "http://books.toscrape.com/"
# Web sayfasının içeriğini çekme
response = requests.get(url)
# Sayfanın kodlamasını otomatik olarak belirleme
response.encoding = response.apparent_encoding
# HTTP isteğinin başarılı olup olmadığını kontrol etme
if response.status_code == 200:
# HTML içeriğini parse etme
soup = BeautifulSoup(response.text, 'html.parser')
# Tüm kitap bilgilerini içeren etiketleri bulma
books = soup.find_all('article', class_='product_pod')
# Çekilen verileri bir CSV dosyasına kaydetme
with open('books.csv', 'w', newline='', encoding='utf-8-sig') as file:
writer = csv.writer(file)
# CSV başlıkları
writer.writerow(['Kitap Adı', 'Fiyat'])
# Her bir kitap için bilgileri çekme
for book in books:
title = book.h3.a['title'] # Kitap adı
price = book.find('p', class_='price_color').text # Kitap fiyatı
# Fiyattaki gereksiz karakterleri temizleme
price = price.replace('Â', '') # Â karakterini kaldır
writer.writerow([title, price])
print("Veriler başarıyla 'books.csv' dosyasına kaydedildi.")
else:
print(f"Sayfa çekilemedi. HTTP Hata Kodu: {response.status_code}")
#Fiyatları Temizleme:
# Fiyatları çekerken, £ gibi gereksiz karakterleri kaldırmak için bir temizleme işlemi uygulayabiliriz.