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

如何用BeautifulSoup获取span标签中隐藏的公寓价格值?

获取前端渲染页面的公寓价格方案

你遇到的问题是因为页面价格是前端JavaScript动态渲染的,用requests直接获取的是服务器返回的模板源码,还没经过浏览器执行JS填充真实数据,所以看到的是模板语法{{ property.price | roundNumber }}。

下面是两种可行的解决方法:

方法一:抓取后端API接口

页面展示的公寓数据(包括价格)通常是通过AJAX请求从后端API获取的,直接请求这个接口就能拿到结构化的真实数据:

  1. 打开浏览器开发者工具(按F12),切换到「网络」标签页,刷新目标页面
  2. 过滤「XHR/fetch」类型的请求,找到返回公寓列表数据的接口(命名通常包含properties、listings等关键词)
  3. 复制该接口的URL、请求头(比如User-Agent、Cookie),直接用requests请求接口获取JSON数据

示例代码:

import requests

# 替换为你找到的真实API接口地址
api_url = "https://www.luxahome.com/api/your-found-endpoint"
# 复制浏览器中的请求头,模拟真实用户请求
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36",
    "Cookie": "此处填写浏览器中对应的Cookie值"
}

response = requests.get(api_url, headers=headers)
property_data = response.json()

# 遍历提取价格
for item in property_data.get("properties", []):
    price = item.get("price")
    print(f"公寓价格:{price}€")

方法二:使用无头浏览器渲染页面

用selenium或playwright模拟真实浏览器加载页面,等待JS执行完成后,再获取渲染后的HTML内容:

  1. 先安装依赖:pip install selenium,并下载对应浏览器的驱动(比如ChromeDriver,需和浏览器版本匹配)
  2. 编写代码模拟浏览器访问,切换到目标iframe后提取价格

示例代码(Selenium):

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.options import Options
import time

# 配置无头模式(不显示浏览器窗口)
chrome_options = Options()
chrome_options.add_argument("--headless=new")
chrome_options.add_argument("--disable-gpu")

# 初始化浏览器驱动
driver = webdriver.Chrome(options=chrome_options)
driver.get("https://www.luxahome.com/propiedades?arrival=01/02/2023&departure=28/02/2023&guests=2&idi=3")

# 等待iframe加载完成(可根据实际情况调整等待时间)
time.sleep(3)
# 切换到目标iframe
iframe = driver.find_element(By.CLASS_NAME, "icnea-iframe")
driver.switch_to.frame(iframe)

# 获取所有价格元素并提取文本
price_elements = driver.find_elements(By.CLASS_NAME, "preu")
for elem in price_elements:
    print(f"公寓价格:{elem.text.strip()}")

# 关闭浏览器
driver.quit()

两种方法对比

  • API接口法:请求速度快、资源占用低,但需要分析接口参数和请求头,部分网站会有反爬限制
  • 无头浏览器法:无需分析接口,完全模拟用户访问,但速度较慢、资源消耗高

内容的提问来源于stack exchange,提问作者Luis M Carvajal

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 04:25:38