div中的Beautifulsoup打印值[重复]

Posted

技术标签:

【中文标题】div中的Beautifulsoup打印值[重复]【英文标题】:Beautifulsoup print value in div [duplicate] 【发布时间】:2019-04-24 01:41:41 【问题描述】:

到目前为止,我正在尝试在 value= 字段之后打印文本,输出看起来像这样。

<div class="controls"><input class="span12 text-bound" id="client_appbundle_prospecttype_name" maxlength="100" name="client_appbundle_prospecttype[name]" required="required" type="text" value="John Smith"/></div>

我的代码如下所示。

soup = BeautifulSoup(html, 'lxml')

contact = soup.find('div', "class": "controls")

print(contact)

如何打印“value=”后面的文本,所以只有 John Smith

谢谢!

【问题讨论】:

【参考方案1】:

在使用 CSS 选择器时使用 id 会更快,并且在可用时应该是您的首选(并且在页面上真正独一无二)。然后,您可以使用.get 访问匹配元素的value 属性的值。

from bs4 import BeautifulSoup
html = '<div class="controls"><input class="span12 text-bound" id="client_appbundle_prospecttype_name" maxlength="100" name="client_appbundle_prospecttype[name]" required="required" type="text" value="John Smith"/></div>'
soup = BeautifulSoup(html, "lxml")
print(soup.select_one('#client_appbundle_prospecttype_name').get('value'))

【讨论】:

以上是关于div中的Beautifulsoup打印值[重复]的主要内容,如果未能解决你的问题,请参考以下文章

使用 BeautifulSoup 从 `div` 中的 `p` 中提取文本

如何使用BeautifulSoup访问标签的属性值

通过 beautifulsoup 安全地删除标签中的孩子

如何使用beautifulsoup快速操作div内的span

如何从结果集中打印值而没有列中的任何重复记录

用beautifulsoup在一个div中获取孩子的文字