Discussion

FastAPI ile Borsa Veri Çekme Geliştirme: CORS Hatası ve Headless Tarayıcı Optimizasyonu

Started by IronPacket · 28 Aug 2026 11:06 · 4 Views · 0 Replies
Thread Starter #0
FastAPI, hızlı geliştirme ve performans sunma özellikleri ile popüler bir web çerçevesidir. Borsa verileri gibi dinamik içerikleri çekmek için kullanılırken, geliştiriciler sıklıkla karşılaştıkları zorluklardan biri CORS (Cross-Origin Resource Sharing) hatasıdır.

CORS, bir web sayfasının başka bir kaynaktan veri çekme isteği yaptığında, tarayıcının güvenlik politikaları nedeniyle ortaya çıkan bir durumdur. Bu, özellikle API'lere erişim sağlarken sıkça yaşanan bir sorundur. Örneğin, FastAPI uygulamanız bir port üzerinde çalışırken, istemci uygulamanız (örneğin, bir JavaScript uygulaması) farklı bir portta çalışıyorsa, CORS politikaları nedeniyle istekler engellenebilir. Bu durumu aşmak için FastAPI uygulamanıza CORS middleware eklemek gerekmektedir. Aşağıdaki örnek kod, CORS ayarlarını nasıl yapılandırabileceğinizi göstermektedir:

CODE
12345678910111213
from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware

app = FastAPI()

app.add_middleware(
    CORSMiddleware,
    allow_origins=["*"],  # İzin verilen kökenler
    allow_credentials=True,
    allow_methods=["*"],
    allow_headers=["*"],
)


Yukarıdaki kodda, allow_origins parametresine "*" vererek, tüm kökenlerden gelen isteklere izin vermiş olursunuz. Ancak, bu ayar güvenlik riskleri taşıyabileceğinden, yalnızca gerekli kökenleri belirtmek daha iyidir.

Diğer bir önemli konu ise headless tarayıcı kullanımıdır. Borsa verilerini çekmek için genellikle Selenium veya Puppeteer gibi headless tarayıcılar tercih edilir. Bu tarayıcılar, sayfanın yüklenmesini beklerken gerçek bir tarayıcı gibi davranarak verilerin çekilmesini sağlar. Örneğin, Selenium kullanarak bir borsa verisini çekmek için aşağıdaki kodu kullanabilirsiniz:

CODE
1234567891011121314
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager

options = webdriver.ChromeOptions()
options.add_argument("--headless")

driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()), options=options)
driver.get("https://borsa-website.com")

[b]Burada veriyi çekmek için gerekli işlemler yapılır[/b]

driver.quit()


Bu yapılandırma ile FastAPI uygulamanızdan CORS hatalarını aşarak, headless tarayıcı ile veri çekme işlemlerini optimize edebilirsiniz. Geliştiriciler, bu iki önemli konu üzerinde dikkatle durarak, daha sağlam ve güvenilir uygulamalar geliştirebilirler.

You must be logged in to reply.

0 quotes selected