Очистить данные после нажатия кнопки «Развернуть» - PullRequest
0 голосов
/ 14 февраля 2020

Я хочу собрать информацию в разделе «Опыт» на странице LinkedIn. Вот пример веб-сайта: https://www.linkedin.com/in/jeffweiner08/

до нажатия кнопки «Показать больше»

после нажатия кнопки «Показать больше»

На втором этапе я хочу начать сбор данных.

Как показано на рисунке, я хочу: 1. Проверить, есть ли «Показать * больше опыта» кнопка. 2. Если это так, сначала нажмите кнопку «Показать больше», а затем соберите информацию. 3. Если нет, соберите информацию напрямую.

for index, row in Test.iterrows():
    driver.get(row['Website'])
    soup = BeautifulSoup(driver.page_source, 'html.parser')
    exp = soup.find('section', {'id':'experience-section'}) 
    temp = exp.find('button', {'class':'pv-profile-section__see-more-inline pv-profile-section__text-truncate-toggle link link-without-hover-state'})
    if temp:
        ShowMore_Button = driver.find_element_by_xpath('/html/body/div[5]/div[4]/div[3]/div/div/div/div/div[2]/main/div[2]/div[6]/span/div/section/div[1]/section/div/button') 
        ShowMore_Button.click()
        employer_names = exp.findAll('p', {'class':'pv-entity__secondary-title t-14 t-black t-normal'})
        employer_names_final = []
        for e in employer_names:
            employer_names_final.append(e.get_text().strip())
        print(employer_names_final)
        date_names = exp.findAll('h4', {'class':'pv-entity__date-range t-14 t-black--light t-normal'})
        date_names_final = []
        for d in date_names:
            date_names_final.append(d.get_text().strip())
        print(date_names_final)
        position_names = exp.findAll('h3', {'class':'t-16 t-black t-bold'})
        position_names_final = []
        for p in position_names:
            position_names_final.append(p.get_text())
        print(position_names_final)
    else: 
        employer_names = exp.findAll('p', {'class':'pv-entity__secondary-title t-14 t-black t-normal'})
        employer_names_final = []
        for e in employer_names:
            employer_names_final.append(e.get_text().strip())

        print(employer_names_final)
        date_names = exp.findAll('h4', {'class':'pv-entity__date-range t-14 t-black--light t-normal'})
        date_names_final = []
        for d in date_names:
            date_names_final.append(d.get_text().strip())
        print(date_names_final)
        position_names = exp.findAll('h3', {'class':'t-16 t-black t-bold'})
        position_names_final = []
        for p in position_names:
            position_names_final.append(p.get_text())
        print(position_names_final)

«Тест» - это фрейм данных с URL-адресами LinkedIn. «драйвер» здесь я использую селен Chrome драйвер.

И вот результат, который я получаю, он собирает информацию, не нажимая кнопку «Показать больше»:

['LinkedIn' , 'Next Play Ventures', 'Concrete Rose Capital', 'Intuit', 'DonorsChoose'] ['Используемые даты \ nDe c 2008 - Настоящее время', 'Используемые даты \ n2014 - Настоящее время', 'Использованные даты \ nOct 2019 - настоящее время »,« Даты трудоустройства \ nApr 2012 - настоящее время »,« Даты трудоустройства \ n2007 - настоящее время »] [« Генеральный директор »,« Соучредитель »,« Учредитель LP, Инвестиционный комитет »,« Член Совета директоров », «Член Совета директоров»]

Как изменить код для сбора данных после нажатия кнопки «Развернуть»? Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...