【问题标题】:CSS Selector in Selenium - Web ScrapingSelenium 中的 CSS 选择器 - 网页抓取
【发布时间】:2021-05-29 02:07:30
【问题描述】:

我正在做 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')

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

【问题讨论】:

  • 我试过了,但我仍然得到空列表!
  • 我猜你的意思是“抓取”——即通过从 HTML 网页读取数据来获取数据——而不是“抓取”——即丢弃。
  • @KhushiThakkar 查看我的更新答案
  • 不要使用那些 ids,你要按照页面上的文字。其他一切都会改变。

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


【解决方案1】:

有几个原因。

  1. ID 是生成的,并非所有配置文件的 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')))

【讨论】:

    猜你喜欢
    • 2021-10-26
    • 1970-01-01
    • 2019-02-22
    • 2018-12-18
    • 2021-09-25
    • 1970-01-01
    • 1970-01-01
    • 2019-02-24
    • 1970-01-01
    相关资源
    最近更新 更多