bs4 获取标签的值

bs4 getting a tag's value

这是我正在处理的 html 代码。

<div class="input-group m-b">
   <span class="input-group-addon">
   $
   </span>
   <input class="form-text form-control input-lg-3" disabled="disabled" 
   groupfields="$" id="edit-transfer--3" maxlength="128" 
   name="transfer_d" size="60" type="text" value="71"/>
</div>

我想要的是得到“71”,这是一个“值”标签的值

我试过了

elem = soup.find('input', attrs={'id':'edit-transfer--3'})
print(elem)

并给予

<input class="form-text form-control input-lg-3" disabled="disabled" groupfields="$" id="edit-transfer--3" maxlength="128" name="transfer_d" size="60" type="text" value="71"/>

我卡住了 print(elem.find('value') 给我 None 和

print(elemd.find('value').get_text())

给我一个错误

AttributeError: 'NoneType' 对象没有属性 'get_text'

如何从标签中提取值?

试试这个:

from bs4 import BeautifulSoup
html = '''<div class="input-group m-b">
   <span class="input-group-addon">
   $
   </span>
   <input class="form-text form-control input-lg-3" disabled="disabled" 
   groupfields="$" id="edit-transfer--3" maxlength="128" 
   name="transfer_d" size="60" type="text" value="71"/>
</div>'''
soup = BeautifulSoup(html, "html.parser")
elem = soup.find('input', attrs={'id':'edit-transfer--3'})

print(elem['value'])

returns

71
  • find方法用于从父元素中查找子元素。由于 value 是一个属性并且没有名为 value 的元素标记,因此返回 None。

  • get_text方法只会提取元素的innerText。由于之前的find返回了None,所以抛出错误。

要获取特定属性,您需要使用方括号。