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

使用Python Selenium解析日期span标签失败,求解决方法

日期解析问题解决建议

问题描述

无法解析格式为2022-11-26的完整日期,使用CSS选择器和Xpath只能获取<span>标签中的2022-内容;尝试代码year = driver.find_element(By.CSS_SELECTOR, ".event-widget time span")获取年份字符串却无输出。对应的HTML结构如下:

<div class="medium-widget event-widget last">
 <div class="shrubbery">
  <h2 class="widget-title"><span aria-hidden="true" class="icon-calendar"></span>Upcoming Events</h2>
   <p class="give-me-more"><a href="/events/calendars/" title="More Events">More</a></p>
    <ul class="menu">
     <li>
      <time datetime="2022-11-26T00:00:00+00:00"><span class="say-no-more">2022-</span>11-26</time>
        <a href="/events/python-events/1331/">De Ja vu</a></li>
      <li>
    <ul>

解决方法

  • 直接读取time元素的datetime属性:这是最可靠的方式,属性里存储了完整标准时间格式,提取后截取日期部分即可:
    time_element = driver.find_element(By.CSS_SELECTOR, ".event-widget time")
    full_datetime = time_element.get_attribute("datetime")
    # 截取得到目标日期2022-11-26
    target_date = full_datetime.split('T')[0]
    
  • 获取time元素的完整文本内容:time标签包含<span>和后续日期部分,直接取该元素文本会自动拼接两部分内容:
    time_element = driver.find_element(By.CSS_SELECTOR, ".event-widget time")
    full_date = time_element.text.strip()  # 得到"2022-11-26"
    
  • 排查元素定位的等待问题:若之前代码无输出,大概率是页面未完全加载,添加显式等待确保元素加载完成:
    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.support import expected_conditions as EC
    
    # 等待目标span元素加载完成
    span_element = WebDriverWait(driver, 10).until(
        EC.presence_of_element_located((By.CSS_SELECTOR, ".event-widget time span"))
    )
    year_part = span_element.text.strip()  # 此时可获取到"2022-"
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 21:40:46