簡體   English   中英

使用 Selenium 抓取 LinkedIn 個人資料

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM