Files
2026-04-12 09:54:27 -05:00

42 lines
1.1 KiB
Python

from typing import Optional
from app.scrapers.base import BaseScraper
from app.scrapers.inaturalist import INaturalistScraper
from app.scrapers.flickr import FlickrScraper
from app.scrapers.wikimedia import WikimediaScraper
from app.scrapers.trefle import TrefleScraper
from app.scrapers.gbif import GBIFScraper
from app.scrapers.duckduckgo import DuckDuckGoScraper
from app.scrapers.bing import BingScraper
def get_scraper(source: str) -> Optional[BaseScraper]:
"""Get scraper instance for a source."""
scrapers = {
"inaturalist": INaturalistScraper,
"flickr": FlickrScraper,
"wikimedia": WikimediaScraper,
"trefle": TrefleScraper,
"gbif": GBIFScraper,
"duckduckgo": DuckDuckGoScraper,
"bing": BingScraper,
}
scraper_class = scrapers.get(source)
if scraper_class:
return scraper_class()
return None
__all__ = [
"get_scraper",
"BaseScraper",
"INaturalistScraper",
"FlickrScraper",
"WikimediaScraper",
"TrefleScraper",
"GBIFScraper",
"DuckDuckGoScraper",
"BingScraper",
]