JobSpy/src/jobspy/scrapers/__init__.py

32 lines
803 B
Python
Raw Normal View History

2023-09-05 10:17:22 -07:00
from ..jobs import Enum, BaseModel, JobType, JobResponse, Country
2023-09-03 18:05:31 -07:00
from typing import List, Optional, Any
2023-07-06 17:12:01 -07:00
class Site(Enum):
LINKEDIN = "linkedin"
INDEED = "indeed"
ZIP_RECRUITER = "zip_recruiter"
class ScraperInput(BaseModel):
site_type: List[Site]
2023-07-06 17:12:01 -07:00
search_term: str
2023-07-11 03:42:20 -07:00
location: str = None
2023-09-05 10:17:22 -07:00
country: Optional[Country] = Country.USA
2023-09-03 07:29:25 -07:00
distance: Optional[int] = None
2023-07-11 03:42:20 -07:00
is_remote: bool = False
2023-09-03 07:29:25 -07:00
job_type: Optional[JobType] = None
2023-08-17 13:44:52 -07:00
easy_apply: bool = None # linkedin
2023-07-10 16:04:44 -07:00
results_wanted: int = 15
2023-07-06 17:12:01 -07:00
class Scraper:
def __init__(self, site: Site, proxy: Optional[List[str]] = None):
2023-07-06 17:12:01 -07:00
self.site = site
self.proxy = (lambda p: {"http": p, "https": p} if p else None)(proxy)
2023-07-06 17:12:01 -07:00
def scrape(self, scraper_input: ScraperInput) -> JobResponse:
...