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

使用Python Selenium爬取99acres房租数据重复获取首条数据求助

问题解决:循环提取房源租金重复获取首个值的修正方法

你的问题出在循环内的XPath使用了绝对路径,每次都会从页面根节点查找匹配元素,因此只会返回第一个房源的租金。要实现基于当前房源卡片的相对查找,只需修改XPath的写法:

修正后的核心代码段

# 提取页面上所有房源的月租金
all_rent_monthly = driver.find_elements(by="class name", value="tupleCardWrap")

for element in all_rent_monthly:
    # 关键:XPath前添加点号,代表从当前element节点(房源卡片)开始查找
    price = element.find_element(by="xpath", value=".//*[@id='srp_tuple_price']")
    print(price.text)

额外优化建议

  • 避免使用固定索引的XPath(比如//*[@id='lf_budget_max_list']/li[33]),网站更新后索引可能失效,建议改用文本匹配,例如//li[text()='40,000'](需根据页面实际文本调整)
  • 替换time.sleep()为Selenium显式等待,提升稳定性且节省时间,示例:
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By

# 等待租金上限控件可点击
maxrent_limit_scroller = WebDriverWait(driver, 10).until(
    EC.element_to_be_clickable((By.ID, "bdf__lf_budMax"))
)
maxrent_limit_scroller.click()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 06:30:24