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

使用Beautiful Soup无法提取网页目标数值170,返回模板表达式的问题咨询

问题解答:无法提取170的原因及模板表达式说明

一、先搞懂那个表达式是什么

{{ property.minRateInCents / 100 | numberFormat(0) }} 是前端模板引擎的语法,常见于Vue.js、Twig这类前端框架或模板系统中,它的作用是动态计算并格式化价格:

  • property.minRateInCents:这是前端代码里的一个变量,存的是价格的分单位数值(比如170对应的就是17000分)
  • / 100:把分转换成当地货币的基本单位(这里就是R$的元单位)
  • | numberFormat(0):这是一个「过滤器」,用来格式化数值,(0)表示保留0位小数,最终得到整数170。

二、为什么Beautiful Soup拿不到170?

这是因为Beautiful Soup只能抓取服务器直接返回的原始HTML源码,而170这个数值是在浏览器端通过JavaScript渲染生成的:服务器返回的只是模板占位符,当浏览器加载页面时,会执行对应的JS代码,把这个模板表达式替换成实际的数值170。你用Beautiful Soup爬取到的是未渲染的原始模板代码,自然看不到170。

三、怎么才能拿到170?

有两种常见的解决思路:

  • 用浏览器自动化工具:比如selenium或playwright,它们可以模拟打开真实的浏览器,等待页面完全渲染完成后,再提取内容,这样就能拿到已经替换好的170了。
  • 直接抓API接口:打开浏览器的开发者工具(F12),切换到「网络」标签,刷新页面,找返回价格数据的API请求(通常是XHR或Fetch类型),直接请求这个接口就能拿到原始的价格数据,这种方式比模拟浏览器效率更高。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 22:07:51