Papaflessas's picture
Deploy Signal Generator app
3fe0726
from typing import List
from news_scraper.adapters.base_adapter import BaseAdapter
class Scraper:
def __init__(self, adapters: List[BaseAdapter], database: None):
self.adapters = adapters
self.database = None
def scrape(self) -> None:
"""
Scrapes articles from all configured news sources and saves them to database
"""
for adapter in self.adapters:
try:
articles = adapter.fetch_articles()
#TODO - Add logic to save articles to database
for article in articles:
adapter.parse_article(article) # For the time being, we will just parse the article and print it
except Exception as e:
print(f"Error with adapter {adapter.__class__.__name__}: {str(e)}")
continue
def add_adapter(self, adapter: BaseAdapter) -> None:
"""
Adds a new news source adapter to the scraper
"""
self.adapters.append(adapter)