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

Python爬取动态网站(配置器):提取指定数值失败求助

问题解决:提取HTML中的数值并修正find方法错误

错误原因分析

你代码里的attrs={'span': 'text'}是错误用法——find方法的attrs参数是用来匹配当前标签的属性,而不是用来指定子标签。你的目标label标签根本没有span这个属性,所以自然返回None。

正确提取方案

先正确定位到目标label标签,再逐层提取子元素里的文本,最后过滤出需要的数值:

from bs4 import BeautifulSoup

# 假设你的results是解析后的HTML节点列表
vehicle_config = []
for result in results:
    # 正确定位label标签,去掉错误的attrs参数
    label = result.find('label', class_='btn btn-sm btn-outline-secondary')
    if label:
        # 获取外层span
        outer_span = label.find('span')
        # 提取"36 Monate"里的36
        month_part = outer_span.contents[0].strip()  # 得到"36 Monate"
        month_num = month_part.split()[0]  # 提取"36"
        
        # 获取内层span,提取"+200 €"里的+200
        price_span = outer_span.find('span')
        price_part = price_span.text.strip()  # 得到"+200 €"
        price_num = price_part.split()[0]  # 提取"+200"
        
        vehicle_config.append({'months': month_num, 'extra_price': price_num})

补充说明

如果文本里的空格或特殊字符(比如€前面的窄空格)影响提取,可以用正则表达式更精准匹配:

import re
# 匹配带正负号的数字
month_num = re.search(r'-?\d+', month_part).group()
price_num = re.search(r'-?\d+', price_part).group()

这样即使文本格式有小变化,也能稳定提取数值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 07:15:38