python BeautifulSoup 获取特定元素

Aym*_*dji 4 python beautifulsoup

如果我有这样的 html 代码

<div class="new_info_next">
     <input type="hidden" value="133" id="new_id" class="new_id">
     <input type="hidden" value="0" id="default_pe" class="default_pe">
</div>
Run Code Online (Sandbox Code Playgroud)

我只想133input第一行中使用 BeautifulSoup4 尝试此代码

info = soup.find_all("div", {"class": "new_info_next"})
for inpu in info:
    for inpu1 in inpu.select('input'):
         print inpu1 .get('value')
Run Code Online (Sandbox Code Playgroud)

但输出是

133
0
Run Code Online (Sandbox Code Playgroud)

如何获得只有 133

nor*_*ght 7

使用汤.find()

默认情况下,它将为您提供第一个匹配元素,因此您可以执行以下操作:

info = soup.find("div", {"class": "new_info_next"})
Run Code Online (Sandbox Code Playgroud)

和 info.get('value') 应该是 133


Mat*_*ndh 1

由于您只需要迭代器中的第一个元素,因此直接寻址它应该可以:

first = inpu.select('input')[0].get('value')
print(first)
Run Code Online (Sandbox Code Playgroud)