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

如何通过Python网络爬虫提取网页中的datetime对象?

爬虫提取发布时间问题的解决方法

问题原因

你代码里用release.find('time', class_='')指定了空class,但目标网站的<time>标签要么带有具体class属性,要么你的查找路径不对,导致找不到对应标签,调用.get('datetime')就会返回None。

具体修正步骤

  • 先定位真实标签结构:在循环里打印当前article的完整HTML,确认<time>标签的位置和属性:
    for release in releases:
        print(release.find('a', class_="title").get_text())
        # 打印article的HTML结构,找到time标签的真实状态
        print(release.prettify())
    
  • 调整time标签的查找逻辑:
    1. 如果<time>有具体class(比如entry-date),直接指定正确class:
      print(release.find('time', class_='entry-date').get('datetime'))
      
    2. 如果<time>没有class,去掉class_=''参数,直接查找标签:
      print(release.find('time').get('datetime'))
      
    3. 如果<time>嵌套在其他标签内(比如<div class="post-meta">),先找父标签再定位time:
      meta_box = release.find('div', class_='post-meta')
      if meta_box:
          print(meta_box.find('time').get('datetime'))
      
  • 增加异常处理:避免找不到标签导致程序崩溃,让代码更健壮:
    for release in releases:
        title_tag = release.find('a', class_="title")
        print(title_tag.get_text().strip() if title_tag else "未找到标题")
        
        time_tag = release.find('time')
        if time_tag:
            print(time_tag.get('datetime') if time_tag.has_attr('datetime') else "无datetime属性")
        else:
            print("未找到发布时间标签")
    

完整修正代码

import requests
from bs4 import BeautifulSoup
import datetime

url = "https://www.invisibleoranges.com/"
response = requests.get(url)
html = response.content
soup = BeautifulSoup(html, 'html.parser')
releases = soup.find_all('article')  # 去掉空class,直接匹配所有article标签

for release in releases:
    # 提取标题
    title_elem = release.find('a', class_="title")
    if title_elem:
        print(f"标题:{title_elem.get_text().strip()}")
    
    # 提取并转换发布时间
    time_elem = release.find('time')
    if time_elem and time_elem.has_attr('datetime'):
        dt_str = time_elem['datetime']
        # 转换为datetime对象
        dt = datetime.datetime.fromisoformat(dt_str)
        print(f"发布时间:{dt}\n")
    else:
        print("发布时间:未获取到\n")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 05:22:49