Open QuanteonQuantumElysium opened 2 days ago
Veri Kaynağı Yönetimi (Adapter Pattern ile) Amaç: Farklı veri kaynaklarından veri toplarken her kaynak için ayrı bir modül (adapter) kullanmak. Böylece farklı kaynaklardan (Web, API, RSS, vb.) gelen verileri aynı altyapı üzerinden toplayabilirsiniz. Adımlar: Adapter pattern ile farklı veri kaynakları için ayrı sınıflar oluşturun. Her sınıf, bir veri kaynağı türünü temsil eder (API, Web Scraping, RSS, vb.). Her sınıfta fetch_data() gibi standart bir metot implement edin, bu metot ilgili kaynaktan veriyi çeker. Örnek: python Copy code class ApiAdapter: def init(self, source_url, params): self.source_url = source_url self.params = params
def fetch_data(self):
response = requests.get(self.source_url, params=self.params)
return response.json()
class WebScrapingAdapter: def init(self, source_url): self.source_url = source_url
def fetch_data(self):
# Web scraping kodu
pass
db_host = os.getenv('DB_HOST')
MongoDB için bir Repository:
python Copy code class MongoRepository: def init(self, collection_name): self.collection = mongo_client[collection_name]
def insert_data(self, data):
return self.collection.insert_one(data)
def find_data(self, query):
return self.collection.find(query)
PostgreSQL için bir Repository:
python Copy code class PostgreSQLRepository: def init(self, connection): self.conn = connection
def insert_data(self, table, data):
with self.conn.cursor() as cur:
# Veri ekleme kodu
cur.execute(f"INSERT INTO {table} ...")
Task: Configure MongoDB and PostgreSQL databases and create necessary collections/tables.
Write data collection algorithms with Python or Node.js.
Develop data extraction functions for each data source. source_type
[ ] Manual
[ ] Web
[ ] RSS
[ ] API
[ ] Database
access_method
data_type
[ ] Text
[ ] CSV
[ ] XML
[ ] HTML
[ ] JSON
Check the format of the extracted data and process it accordingly.