Парсер Linkedin для извлечения навыков

Я пытаюсь очистить общедоступные профили людей, чтобы получить наиболее общие навыки для определенных ролей. Я могу извлечь адрес электронной почты, название компании, имя, должность и т. Д., Но не могу получить необходимые навыки. Я использую Selector из parsel. Я пробовал много подходов, но явно нацелился не на тот класс, и мне, вероятно, следует прокрутить навыки. Вот мой код:

def linkedin_scrape(linkedin_urls):

profiles = []

for url in linkedin_urls:

    _DRIVER_CHROME.get(url)
    sleep(5)

    selector = Selector(text=_DRIVER_CHROME.page_source)

    # Use xpath to extract the exact class containing the profile name
    name = selector.xpath('//*[starts-with(@class, "inline")]/text()').extract_first()
    if name:
        name = name.strip()

    # Use xpath to extract the exact class containing the profile position
    position = selector.xpath('//*[starts-with(@class, "mt1")]/text()').extract_first()

    if position:
        position = position.strip()
        position = position[0:position.find(' at ')]

    # Use xpath to extract the exact class containing the profile company
    company = selector.xpath('//*[starts-with(@class, "text-align-left")]/text()').extract_first()

    if company:
        company = company.strip()

    # Use xpath to extract skills

    skills = selector.xpath('//*[starts-with(@class, "pv-skill")]/text()').extract_first()

    if skills:
        skills = skills.strip()


    profiles.append([name, position, company, url])
    print(f'{len(profiles)}: {name}, {position}, {company}, {url}, {skills}')

return profiles

0 ответов

Чтобы охватить все навыки, вам нужно сначала развернуть раздел навыков, чтобы он отображал все навыки, а затем нацелить класс с именем, которое начинается с "pv-skill-category-entity__name-text".

У меня это работает до сегодняшнего дня.

#locate link to expand skills
show_more_skills_button = driver.find_element_by_class_name("pv-skills-section__chevron-icon")
#expand
show_more_skills_button.click()

skills = driver.find_elements_by_xpath("//*[starts-with(@class,'pv-skill-category-entity__name-text')]")

#create skills set
skill_set = []
for skill in skills:
    skill_set.append(skill.text)
Другие вопросы по тегам