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

使用BeautifulSoup提取HTML中房屋链接、标题、面积、楼层字段

解决方法

1. 提取item-link的链接与标题属性

BeautifulSoup中提取标签属性可直接调用标签对象的get()方法,属性不存在时会返回None避免报错,实现代码如下:

# 先获取a标签对象
item_link_tag = all[0].find("a", {"class": "item-link"})
# 提取href属性
item_url = item_link_tag.get("href")
# 提取title属性
item_title = item_link_tag.get("title")

2. 提取房屋面积、楼层字段

同类名的item-detail标签在示例HTML中按固定顺序排列:第1个是户型、第2个是面积、第3个是楼层,调用find_all()获取全部同类标签后按索引取值即可:

# 获取所有item-detail标签的列表
detail_tags = all[0].find_all("span", {"class": "item-detail"})
# 索引1对应面积,strip()用于清除首尾多余空白字符
house_area = detail_tags[1].text.strip()
# 索引2对应楼层
house_floor = detail_tags[2].text.strip()

如果担心页面结构变动导致顺序偏移,可增加内容特征判断逻辑:

house_area = ""
house_floor = ""
for tag in detail_tags:
    tag_text = tag.text.strip()
    if "m²" in tag_text:
        house_area = tag_text
    elif "floor" in tag_text:
        house_floor = tag_text

完整可运行提取代码示例

# 已有提取逻辑
price = all[0].find("span",{"class":"item-price h2-simulated"}).text
tipology = all[0].find("span",{"class":"item-detail"}).text
contact = all[0].find("span",{"class":"icon-phone item-not-clickable-phone"}).text

# 新增提取逻辑
item_link_tag = all[0].find("a", {"class": "item-link"})
item_url = item_link_tag.get("href")
item_title = item_link_tag.get("title")

detail_tags = all[0].find_all("span", {"class": "item-detail"})
house_area = detail_tags[1].text.strip()
house_floor = detail_tags[2].text.strip()

内容的提问来源于stack exchange,提问作者Carlos Filipe Novais

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 09:54:07