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

BeautifulSoup find()带连字符属性名使用问题及定时解析需求

解决带连字符属性的BeautifulSoup解析及定时运行问题

核心问题说明

Python关键字参数不允许包含连字符,所以你写的date-time=True会直接报错;另外代码里post["date=time"]是笔误,目标属性应为date-time。

两种可行的解决方法

  • 方法一:用字典传递属性参数
    把带连字符的属性放进attrs字典,作为find方法的参数:

    post = soup.find("div", class_="largeTitle", attrs={"date-time": True})
    post_id = post["date-time"]
    
  • 方法二:使用CSS选择器
    用select_one方法配合CSS属性选择器,直接识别带连字符的属性:

    post = soup.select_one("div.largeTitle[date-time]")
    post_id = post["date-time"]
    

完整定时运行的修正代码

结合每30分钟运行一次的需求,完整代码如下:

import telebot
import requests
import time
from bs4 import BeautifulSoup

URL = "****"

def parse_new_content():
    page = requests.get(URL)
    soup = BeautifulSoup(page.content, "html.parser")
    
    # 此处可替换为方法二的写法
    post = soup.find("div", class_="largeTitle", attrs={"date-time": True})
    if post:
        post_datetime = post["date-time"]
        # 加入你对比日期、解析新内容的逻辑
        print(f"获取到最新日期:{post_datetime}")
    else:
        print("未找到目标元素")

if __name__ == "__main__":
    while True:
        parse_new_content()
        # 每30分钟执行一次(单位:秒)
        time.sleep(1800)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 15:27:11