You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Selenium爬取招聘信息:获取Job Scope后元素文本失败问题

问题解决方案

1. 修正XPath定位逻辑

原XPath无法匹配目标div,因为“Job Scope”文本嵌套在div的子元素<b>中,需调整定位规则:

.//div[b[contains(text(), 'Job Scope')]]/following-sibling::div[1]
  • 开头的.限定在当前job元素的上下文内查找,避免全局匹配
  • div[b[contains(text(), 'Job Scope')]]精准定位包含“Job Scope”文本b标签的父div
  • following-sibling::div[1]获取该div的紧邻第一个后续div

2. 调整代码处理元素列表

find_elements返回元素列表,直接调用.text会报错,需先判断元素存在再提取文本。修改后的代码示例:

job_description = []
job_descriptions = WebDriverWait(browser, 10).until(EC.presence_of_all_elements_located((By.ID,"gnewtonJobDescriptionText")))
for job in job_descriptions:
    # 用find_element获取单个匹配元素(符合紧邻后续div的需求)
    try:
        target_div = job.find_element(By.XPATH, ".//div[b[contains(text(), 'Job Scope')]]/following-sibling::div[1]")
        job_description.append(target_div.text.strip())
    except NoSuchElementException:
        # 处理元素未找到的场景,可按需调整
        job_description.append("")

3. 额外优化建议

  • 若目标元素是动态加载,改用EC.visibility_of_all_elements_located替代presence_of_all_elements_located,确保元素可见后再提取文本
  • 若页面存在多个“Job Scope”模块,可保留find_elements并遍历处理所有匹配的紧邻div

内容的提问来源于stack exchange,提问作者ndp4949

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 14:25:19