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

如何提取input标签中的数值?请求协助完善Python爬虫代码

修复提交按钮文本中的数字提取问题

我来帮你一步步修正代码,当前代码无法获取目标数值主要有两个问题:

  • <input>是自闭合标签,它的显示文本其实存在于value属性中,而非标签的内部文本,所以用.text()(而且BeautifulSoup里获取文本的方法是.get_text()或.string,不是.text())根本拿不到内容
  • 就算拿到了字符串,还需要处理其中的空格和非数字部分,才能得到纯数字6355

下面是修正后的完整代码:

from fake_useragent import UserAgent
from bs4 import BeautifulSoup
import requests
import re  # 引入正则模块处理数字提取

URL_accueil = "https://www.lacentrale.fr/listing?mileageMax=150000&priceMax=17000&priceMin=5000&yearMin=2012&age=1"
page_accueil = requests.get(URL_accueil, headers={'User-Agent': str(UserAgent().chrome)})
soup = BeautifulSoup(page_accueil.text, "lxml").find('div', {"class": "submitContainer txtC"})
print(soup)
print("\n\n")

try:
    # 首先获取input标签的value属性值
    submit_value = soup.find('input', {"type": "submit"}).get('value')
    # 用正则提取所有数字字符,去除空格和其他非数字内容
    pagination = re.sub(r'\D', '', submit_value)
    # 可选:转成整数类型
    pagination = int(pagination) if pagination else "missing"
except Exception as e:
    print(f"Error occurred: {e}")
    pagination = "missing"

print(pagination)

代码说明:

  1. 获取value属性:用.get('value')从input标签中拿到完整的按钮文本Rechercher (6 355 annonces)
  2. 提取纯数字:使用正则表达式re.sub(r'\D', '', submit_value),把所有非数字的字符(包括空格、括号、字母等)替换为空,得到6355
  3. 类型转换与异常处理:把提取到的字符串转成整数(如果有值的话),同时保留异常捕获,避免页面结构变化导致程序崩溃

这样就能正确提取到你想要的数字6355啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 06:58:31