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,所以抛出错误。
要获取特定属性,您需要使用方括号。
这是我正在处理的 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,所以抛出错误。
要获取特定属性,您需要使用方括号。