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

Python新手求助:如何用BeautifulSoup提取HTML中input的value值?

别客气呀!刚接触Python的时候,对BeautifulSoup的选择器不太熟太正常了,我来帮你捋清楚怎么提取这些数字~

解决思路

你已经成功定位到了目标<div>元素,接下来只需要在这个div范围内,找到所有的<input>标签,然后提取它们的value属性值即可。

完整代码示例

import requests
from bs4 import BeautifulSoup as bs

session = requests.session()
url = "url here"
a = session.get(url)
soup = bs(a.text,'html.parser')

# 定位目标div容器
sizes_container = soup.find('div', {'class':'option-radios'})

# 提取所有input标签的value数字
if sizes_container:
    # 遍历div内的所有input标签,提取value并转成整数
    value_numbers = [int(input_tag['value']) for input_tag in sizes_container.find_all('input')]
    print("提取到的数字列表:", value_numbers)
else:
    print("未找到目标div元素,请检查页面结构或class名称是否正确")

代码细节解释

  • sizes_container.find_all('input'):在已经定位的div容器里,筛选出所有的<input>标签,返回一个可遍历的标签列表。
  • input_tag['value']:获取单个input标签的value属性值(默认是字符串类型)。
  • int(...):如果需要把结果转成整数类型,就加上这个转换;如果只需要字符串形式,直接去掉int()即可。

更简洁的写法(CSS选择器)

你也可以直接用CSS选择器一步到位定位目标input标签,省去先找div的步骤:

import requests
from bs4 import BeautifulSoup as bs

session = requests.session()
url = "url here"
a = session.get(url)
soup = bs(a.text,'html.parser')

# 直接通过CSS选择器定位所有目标input
value_numbers = [int(tag['value']) for tag in soup.select('div.option-radios input.property-uid1')]
print("提取到的数字列表:", value_numbers)

这里的div.option-radios input.property-uid1表示:找到class为option-radios的div下,所有class为property-uid1的input标签,定位更精准。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.07 20:02:31