SYMBOL INDEX (114 symbols across 21 files) FILE: examples/daily_auto_connect.py function connect_with_staff (line 34) | def connect_with_staff(): FILE: examples/x_corp_staff.py function save_results (line 90) | def save_results(users: pd.DataFrame): function scrape_and_save (line 98) | def scrape_and_save(term=None, location=None): FILE: staffspy/__init__.py class LinkedInAccount (line 28) | class LinkedInAccount: method __init__ (line 36) | def __init__( method login (line 57) | def login(self): method scrape_staff (line 68) | def scrape_staff( method scrape_users (line 109) | def scrape_users( method scrape_comments (line 152) | def scrape_comments(self, post_ids: list[str]) -> pd.DataFrame: method scrape_companies (line 174) | def scrape_companies( method scrape_connections (line 211) | def scrape_connections( FILE: staffspy/linkedin/certifications.py class CertificationFetcher (line 10) | class CertificationFetcher: method __init__ (line 11) | def __init__(self, session): method fetch_certifications (line 15) | def fetch_certifications(self, staff): method parse_certifications (line 45) | def parse_certifications(self, sections): FILE: staffspy/linkedin/comments.py class CommentFetcher (line 11) | class CommentFetcher: method __init__ (line 13) | def __init__(self, session): method fetch_comments (line 19) | def fetch_comments(self, post_id: str): method parse_comments (line 48) | def parse_comments(self, comments_json: dict): FILE: staffspy/linkedin/contact_info.py class ContactInfoFetcher (line 15) | class ContactInfoFetcher: method __init__ (line 16) | def __init__(self, session): method fetch_contact_info (line 20) | def fetch_contact_info(self, base_staff): method parse_emp_contact_info (line 42) | def parse_emp_contact_info(self, emp: Staff, emp_dict: dict): FILE: staffspy/linkedin/employee.py class EmployeeFetcher (line 12) | class EmployeeFetcher: method __init__ (line 13) | def __init__(self, session): method fetch_employee (line 19) | def fetch_employee(self, base_staff, domain): method parse_emp (line 44) | def parse_emp(self, emp: Staff, emp_dict: dict): FILE: staffspy/linkedin/employee_bio.py class EmployeeBioFetcher (line 9) | class EmployeeBioFetcher: method __init__ (line 10) | def __init__(self, session): method fetch_employee_bio (line 14) | def fetch_employee_bio(self, base_staff): FILE: staffspy/linkedin/experiences.py class ExperiencesFetcher (line 11) | class ExperiencesFetcher: method __init__ (line 12) | def __init__(self, session): method fetch_experiences (line 16) | def fetch_experiences(self, staff): method parse_experiences (line 51) | def parse_experiences(self, elements): method parse_multi_exp (line 121) | def parse_multi_exp(self, entity): FILE: staffspy/linkedin/languages.py class LanguagesFetcher (line 10) | class LanguagesFetcher: method __init__ (line 11) | def __init__(self, session): method fetch_languages (line 15) | def fetch_languages(self, staff: Staff): method parse_languages (line 35) | def parse_languages(self, language_json: dict) -> list[str]: FILE: staffspy/linkedin/linkedin.py class LinkedInScraper (line 29) | class LinkedInScraper: method __init__ (line 41) | def __init__(self, session: requests.Session): method search_companies (line 65) | def search_companies(self, company_name: str): method fetch_or_search_company (line 111) | def fetch_or_search_company(self, company_name): method _get_company_id_and_staff_count (line 138) | def _get_company_id_and_staff_count(self, company_name: str): method parse_staff (line 163) | def parse_staff(self, elements: list[dict]): method fetch_staff (line 207) | def fetch_staff(self, offset: int): method fetch_connections_page (line 249) | def fetch_connections_page(self, offset: int): method scrape_connections (line 280) | def scrape_connections( method fetch_location_id (line 321) | def fetch_location_id(self): method scrape_staff (line 357) | def scrape_staff( method fetch_all_info_for_employee (line 434) | def fetch_all_info_for_employee(self, employee: Staff, index: int): method fetch_user_profile_data_from_public_id (line 462) | def fetch_user_profile_data_from_public_id(self, user_id: str, key: str): method block_user (line 501) | def block_user(self, employee: Staff) -> None: method connect_user (line 530) | def connect_user(self, employee: Staff) -> None: FILE: staffspy/linkedin/schools.py class SchoolsFetcher (line 11) | class SchoolsFetcher: method __init__ (line 13) | def __init__(self, session): method fetch_schools (line 17) | def fetch_schools(self, staff): method parse_schools (line 44) | def parse_schools(self, elements): FILE: staffspy/linkedin/skills.py class SkillsFetcher (line 10) | class SkillsFetcher: method __init__ (line 11) | def __init__(self, session): method fetch_skills (line 15) | def fetch_skills(self, staff: Staff): method parse_skills (line 40) | def parse_skills(self, sections): FILE: staffspy/solvers/capsolver.py function is_none (line 10) | def is_none(value): class CapSolver (line 14) | class CapSolver(Solver): method solve (line 18) | def solve(self, blob_data: str, page_url: str = None): FILE: staffspy/solvers/solver.py class Solver (line 4) | class Solver(ABC): method __init__ (line 8) | def __init__(self, solver_api_key:str): method solve (line 12) | def solve(self, blob_data: str, page_ur: str=None): FILE: staffspy/solvers/solver_type.py class SolverType (line 3) | class SolverType(Enum): FILE: staffspy/solvers/two_captcha.py class TwoCaptchaSolver (line 7) | class TwoCaptchaSolver(Solver): method solve (line 18) | def solve(self, blob_data: str, page_url: str = None): FILE: staffspy/utils/driver_type.py class BrowserType (line 5) | class BrowserType(Enum): class DriverType (line 10) | class DriverType: method __init__ (line 11) | def __init__( FILE: staffspy/utils/exceptions.py class TooManyRequests (line 1) | class TooManyRequests(Exception): class BadCookies (line 5) | class BadCookies(Exception): class GeoUrnNotFound (line 9) | class GeoUrnNotFound(Exception): class BlobException (line 13) | class BlobException(Exception): FILE: staffspy/utils/models.py class Comment (line 9) | class Comment(BaseModel): method to_dict (line 19) | def to_dict(self): class School (line 32) | class School(BaseModel): method to_dict (line 38) | def to_dict(self): class Skill (line 47) | class Skill(BaseModel): method to_dict (line 52) | def to_dict(self): class ContactInfo (line 60) | class ContactInfo(BaseModel): method to_dict (line 68) | def to_dict(self): class Certification (line 79) | class Certification(BaseModel): method to_dict (line 86) | def to_dict(self): class Experience (line 96) | class Experience(BaseModel): method to_dict (line 105) | def to_dict(self): class Staff (line 117) | class Staff(BaseModel): method get_top_skills (line 153) | def get_top_skills(self): method to_dict (line 163) | def to_dict(self): method estimate_age_based_on_education (line 269) | def estimate_age_based_on_education(self): FILE: staffspy/utils/utils.py function set_csrf_token (line 32) | def set_csrf_token(session): function extract_base_domain (line 38) | def extract_base_domain(url: str): function create_emails (line 44) | def create_emails(first, last, domain): function get_webdriver (line 57) | def get_webdriver(driver_type: Optional[DriverType] = None): class Login (line 89) | class Login: method __init__ (line 91) | def __init__( method solve_captcha (line 107) | def solve_captcha(self, session, data, payload): method login_requests (line 192) | def login_requests(self): method login_browser (line 232) | def login_browser(self): method save_session (line 253) | def save_session(self, session, session_file: str): method load_session (line 258) | def load_session(self): method check_logged_in (line 292) | def check_logged_in(self, session): function parse_date (line 308) | def parse_date(date_str): function parse_duration (line 318) | def parse_duration(duration): function set_logger_level (line 332) | def set_logger_level(verbose: int = 0): function parse_dates (line 349) | def parse_dates(date_str): function extract_emails_from_text (line 372) | def extract_emails_from_text(text: str) -> list[str] | None: function parse_company_data (line 379) | def parse_company_data(json_data, search_term=None): function clean_df (line 439) | def clean_df(staff_df): function upload_to_clay (line 451) | def upload_to_clay(webhook_url: str, data: pd.DataFrame):