Я хочу собрать информацию в разделе «Опыт» на странице 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, Инвестиционный комитет »,« Член Совета директоров », «Член Совета директоров»]
Как изменить код для сбора данных после нажатия кнопки «Развернуть»? Спасибо.