[英]LinkedIn profile scraping using Selenium
我正在尝试抓取linkedin 配置文件,但是当我获得配置文件URL 时,它们是重复的,因为一个url 可以位于多个类或标签中。 您能否建议如何为每个配置文件仅找到一份 URL 副本。 谢谢。
options = Options()
options.add_argument("--start-maximized")
url = "https://www.linkedin.com/login?fromSignIn=true&trk=guest_homepage-basic_nav-header-signin"
driver = webdriver.Chrome(r"path", options=options)
driver.get(url)
driver.find_element_by_id('username').send_keys('email')
driver.find_element_by_id('password').send_keys('pass', Keys.ENTER)
sleep(10)
driver.find_element_by_class_name('search-global-typeahead__input').send_keys('CEO', Keys.ENTER)
driver.implicitly_wait(10)
driver.find_element_by_xpath('//button[text()="Люди"]').click()
x = 0
linklist = []
driver.execute_script("window.scrollTo(0, 1300);")
driver.implicitly_wait(10)
links = driver.find_elements_by_xpath('//a[contains(@href, "/in/")]')
for i in links:
sleep(2)
link = i.get_attribute('href')
linklist.append(link)
print(linklist)
如果您的链接列表中有重复的linklist
,您可以通过将它们转换为一个set
来获得唯一值。
linklist=list(set(linklist))
编辑:
您正在获得重复的链接,因为您正在 enite 网站上搜索链接,并且正如您所提到的,这些链接存在于不同的元素中。 您可以通过首先搜索每个成员的姓名标题来获取唯一链接。
options = Options()
options.add_argument("--start-maximized")
url = "https://www.linkedin.com/login?fromSignIn=true&trk=guest_homepage-basic_nav-header-signin"
driver = webdriver.Chrome(r"path", options=options)
driver.get(url)
driver.find_element_by_id('username').send_keys('email')
driver.find_element_by_id('password').send_keys('pass', Keys.ENTER)
sleep(10)
driver.find_element_by_class_name('search-global-typeahead__input').send_keys('CEO', Keys.ENTER)
driver.implicitly_wait(10)
driver.find_element_by_xpath('//button[text()="Люди"]').click()
sleep(5) #Wait for enitre page to load
linkedin_members = driver.find_elements_by_xpath('//span[@class="entity-result__title"]')
然后,您可以遍历名称标题和 select 元素内的 href(注意.//a[@class="app-aware-link]
中的.
您可以使用 try/except 语句来查找使用.//a[contains(@href, "/in/")]
非隐藏配置文件,但是如果该元素不存在,则需要 selenium 一段时间才能弄清楚。 select 所有href和之后过滤隐藏的配置文件。
linklist = [linkedin_member.find_element_by_xpath('.//a[@class="app-aware-link"]').get_attribute('href') for linkedin_member in linkedin_members if "/in/" in linkedin_member.find_element_by_xpath('.//a[@class="app-aware-link"]').get_attribute('href')]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.