Autor del tema
#0
Borsa verilerini çekmek, yatırımcılar ve analistler için kritik öneme sahip bir süreçtir. Bu yazıda, Python'un güçlü kütüphanelerinden BeautifulSoup'u kullanarak verileri nasıl çekebileceğimizi, bu verileri MySQL veya MariaDB veritabanına nasıl kaydedeceğimizi ve DOM yüklenme ile element bulamama sorunlarını nasıl yönetebileceğimizi ele alacağız.
1. BeautifulSoup ile Veri Çekme
BeautifulSoup, HTML ve XML dosyalarını kolaylıkla parçalayıp, içinden veri çekmemizi sağlayan bir Python kütüphanesidir. İlk adımda, gerekli kütüphaneleri yüklememiz gerekiyor:
Veri çekmek istediğimiz sayfanın URL'sini belirleyerek, HTML içeriğini alabiliriz:
Bu noktada, istediğimiz verileri bulmak için
2. MySQL/MariaDB ile Veri Kaydı
Elde edilen verileri bir veritabanına kaydetmek için önce bir veritabanı bağlantısı oluşturmalıyız:
Veri kaydetmek için gerekli SQL sorgusunu oluşturup çalıştırabiliriz:
Verileri kaydettikten sonra, bağlantıyı kapatmayı unutmamalıyız:
3. DOM Yüklenme ve Element Bulamama Sorunları
Veri çekme işleminde sıkça karşılaşılan sorunlardan biri, belirli elementlerin DOM'da yüklenmemesi veya zamanla değişmesidir. Bunu yönetmek için birkaç strateji kullanabiliriz:
Sonuç olarak, BeautifulSoup ile borsa verilerini çekmek, bunları bir veritabanına kaydetmek ve karşılaşabileceğimiz sorunları yönetmek, doğru tekniklerle oldukça verimli hale getirilebilir. Bu yöntemler, veri analizi ve yatırım stratejileri geliştirmek için sağlam bir temel oluşturur.
1. BeautifulSoup ile Veri Çekme
BeautifulSoup, HTML ve XML dosyalarını kolaylıkla parçalayıp, içinden veri çekmemizi sağlayan bir Python kütüphanesidir. İlk adımda, gerekli kütüphaneleri yüklememiz gerekiyor:
CODE
1234
import requests
from bs4 import BeautifulSoup
import mysql.connector
Veri çekmek istediğimiz sayfanın URL'sini belirleyerek, HTML içeriğini alabiliriz:
CODE
1234
url = 'https://example.com/stock-data'
response = requests.get(url)
soup = BeautifulSoup(response.content, 'html.parser')
Bu noktada, istediğimiz verileri bulmak için
soup nesnesini kullanarak belirli HTML elementlerini seçebiliriz.2. MySQL/MariaDB ile Veri Kaydı
Elde edilen verileri bir veritabanına kaydetmek için önce bir veritabanı bağlantısı oluşturmalıyız:
CODE
12345678
db = mysql.connector.connect(
host='localhost',
user='kullanici_ad',
password='sifre',
database='veritabani_adi'
)
cursor = db.cursor()
Veri kaydetmek için gerekli SQL sorgusunu oluşturup çalıştırabiliriz:
CODE
12345
sql = "INSERT INTO borsa_verileri (sirket_adi, fiyat) VALUES (%s, %s)"
val = (sirket_adi, fiyat)
cursor.execute(sql, val)
db.commit()
Verileri kaydettikten sonra, bağlantıyı kapatmayı unutmamalıyız:
CODE
123
cursor.close()
db.close()
3. DOM Yüklenme ve Element Bulamama Sorunları
Veri çekme işleminde sıkça karşılaşılan sorunlardan biri, belirli elementlerin DOM'da yüklenmemesi veya zamanla değişmesidir. Bunu yönetmek için birkaç strateji kullanabiliriz:
- Bekleme Süreleri:
time.sleep()ile belirli bir süre bekleyerek, sayfanın tamamen yüklenmesini sağlayabiliriz.
- JavaScript ile Yüklenen Veriler: Eğer veriler JavaScript ile yükleniyorsa, Selenium gibi bir kütüphane kullanmak daha etkili olabilir.
- Hata Yönetimi: Element bulunamadığında, uygun hata mesajları verip, programın devam etmesini sağlayacak bir yapı oluşturmak önemlidir.
CODE
123456
try:
element = soup.find('div', class_='fiyat')
fiyat = element.text
except AttributeError:
fiyat = None
Sonuç olarak, BeautifulSoup ile borsa verilerini çekmek, bunları bir veritabanına kaydetmek ve karşılaşabileceğimiz sorunları yönetmek, doğru tekniklerle oldukça verimli hale getirilebilir. Bu yöntemler, veri analizi ve yatırım stratejileri geliştirmek için sağlam bir temel oluşturur.