div中的Beautifulsoup打印值

时间:2018-11-21 13:15:11

标签: python selenium beautifulsoup screen-scraping

到目前为止,我正在尝试在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 =”后面的文本,所以只有约翰·史密斯

谢谢!

1 个答案:

答案 0 :(得分:0)

使用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'))