Selenium 中的 CSS 选择器 - 网页抓取

时间:2021-02-26 17:14:05

标签: selenium selenium-webdriver web-scraping css-selectors

我正在做 Linkedin web 抓取,作为我大学项目的一部分。这是用于定位技能和认可、推荐和成就部分的代码:

skills = driver.find_elements_by_css_selector('#ember661')

recom = driver.find_elements_by_css_selector('#ember679')

acc = driver.find_elements_by_css_selector('#ember695')

但是我在所有三个变量中都得到了一个空列表。请帮忙!

1 个答案:

答案 0 :(得分:0)

有几个原因。

  1. 生成的 ID 对于所有配置文件并不相同。
  2. 您不应该期待元素列表。个人资料页面上的每种类型都有一个部分,因此将返回单个元素。
  3. 这些部分可能会异步加载,因此页面已加载但该部分尚未加载。以便定位器返回false。在这种情况下,您需要使用显式等待。 喜欢
waiter = WebDriverWait(driver, 10) 
skills = waiter.until(EC.visibility_of_element_located((By.CSS_SELECTOR, '.pv-skill-categories-section')))
recom = waiter.until(EC.visibility_of_element_located((By.CSS_SELECTOR, '.pv-recommendations-section')))
acc = waiter.until(EC.visibility_of_element_located((By.CSS_SELECTOR, '.pv-accomplishments-section')))