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

使用BeautifulSoup爬取网页时如何获取li标签内的特定数据属性

问题原因

data-price是li标签的属性,不是子标签,你调用find()方法是查找当前节点下的子标签,自然找不到匹配项返回None。

正确获取方法

在BeautifulSoup中,要获取标签的属性可以直接把标签对象当作字典操作,推荐用get()方法避免属性不存在时报错,示例代码如下:

for i in soup.find_all('li',{'class':'col-xs-12 col-sm-6 col-xl-4 padding10'}):
    # 取值时属性名和标签上的属性名完全一致即可
    price = i.get('data-price')
    boat_year = i.get('data-boat_year')
    guests = i.get('data-guests')
    # 可按需获取其他data-*属性
    print(f"价格:{price},出厂年份:{boat_year},可承载人数:{guests}")

如果确定所有li标签都存在对应属性,也可以直接用索引写法:price = i['data-price'],也可以通过attrs属性取值:price = i.attrs.get('data-price'),效果一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 07:24:03