我正在做Linkedin网页抓取作为我大学项目的一部分。这是定位技能的代码& &;推荐、推荐和成就部分:
skills = driver.find_elements_by_css_selector('#ember661')
recom = driver.find_elements_by_css_selector('#ember679')
acc = driver.find_elements_by_css_selector('#ember695')
但是我在所有三个变量中得到一个空列表。请帮助!
原因如下:
生成- ID,并不是所有配置文件都相同。
- 你不应该期望一个元素列表。在配置文件页面上,每种类型都有一个单独的部分,因此将返回单个元素。
- 这些section可能被异步加载,因此页面被加载,但section尚未被加载。使定位器返回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')))