使用requests.get爬取网页时数据与页面显示不一致的问题求助
解决API返回数据与网页显示不一致的问题
问题原因
你直接通过索引test["items"][8]取值,可能拿到的是实用面积(Užitná plocha),而网页显示的是总面积(Celková plocha),两者属于不同数据字段,因此数值存在差异。另外,API返回的items列表顺序可能随网站更新发生变化,硬编码索引会导致取值不稳定。
解决方案
- 先遍历API返回的所有
items,查看每个字段的标签和对应值,定位到网页显示的面积字段:
import requests response = requests.get("https://www.sreality.cz/api/cs/v2/estates/3574729052?tms=1676140494143").json() for item in response["items"]: print(f"标签: {item['name']}, 值: {item['value']}")
- 运行代码后,你会看到包含各类房产参数的输出,从中找到标注为
Celková plocha(总面积)的条目,其数值就是网页显示的54平方米。 - 后续通过字段名称而非索引取值,避免因列表顺序变化导致错误:
# 遍历匹配总面积字段 total_area = next(item["value"] for item in response["items"] if item["name"] == "Celková plocha") print(total_area)
补充说明
这类房产网站通常会区分实用面积和总面积,网页前端一般优先展示用户更关注的总面积,而API会返回多个面积相关字段。直接依赖索引取值不可靠,通过字段名称匹配才是稳定的爬取方案。
内容的提问来源于stack exchange,提问作者Nikcus
相关产品推荐
相关产品推荐

