【问题标题】:bs4 getting a tag's valuebs4 获取标签的值
【发布时间】:2021-04-15 01:28:17
【问题描述】:

这是我正在处理的 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') 没有给我 和

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

给我一​​个错误

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

如何从标签中提取值?

【问题讨论】:

    标签: beautifulsoup tags


    【解决方案1】:

    试试这个:

    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'])
    

    返回

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

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

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

    【讨论】:

    • 太棒了!!如此简单,它的工作原理!我认为我缺乏一些基本的东西。你填满了我。
    猜你喜欢
    • 2017-11-16
    • 2017-02-27
    • 2014-10-04
    • 1970-01-01
    • 1970-01-01
    • 2017-12-23
    • 1970-01-01
    • 2017-09-20
    • 1970-01-01
    相关资源
    最近更新 更多