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

Python BeautifulSoup爬取房产数据出现重复结果问题求助

问题分析与解决

你的问题出在没有按房源单元来抓取数据,而是全局抓取所有标题链接和所有价格,导致两者数量不匹配且对应关系混乱。网页中同一个房源可能有多个重复的标题链接(比如卡片里的标题、图片跳转、按钮跳转),而每个房源可能对应多个价格选项,直接全局抓取就会出现标题重复3次但价格不重复的错位情况。

解决方案

先定位每个房源的独立容器,再从每个容器内提取对应的标题、链接和价格,确保每组信息一一对应。修改后的代码如下:

import requests
from bs4 import BeautifulSoup

userSearch = input('Input search: ')
link = 'https://www.lamudi.com.ph/buy/?q={}'.format(userSearch)
page = requests.get(link)
soup = BeautifulSoup(page.content, 'html.parser')

# 定位每个房源的容器(根据网页实际结构调整,此处以ListingCell为例)
property_list = soup.find_all("div", class_="ListingCell")

for property_item in property_list:
    # 从当前房源容器内提取标题与链接
    title_link = property_item.find("a", title=True)
    if not title_link:
        continue  # 跳过无标题的异常房源
    title = title_link['title']
    href = title_link['href']
    
    # 从当前房源容器内提取价格
    price_elem = property_item.find("span", class_="PriceSection-FirstPrice")
    price_text = price_elem.get_text(strip=True) if price_elem else "价格未显示"
    
    print(title)
    print(href)
    print(price_text)
    print("===============")

关键说明

  • 先抓取每个房源的独立容器(比如ListingCell),确保按单个房源维度处理数据,从根源避免跨房源的信息错位。
  • 在容器内用find而非find_all提取元素,每个房源只会获取一组标题链接和对应价格,不会重复抓取同一房源的多个入口链接。
  • 加入判空逻辑,避免部分房源缺少信息时触发报错。

你可以用浏览器开发者工具查看房源卡片的父元素class,若ListingCell不符合实际结构,替换成网页中真实的房源容器类名即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 12:27:13