当param =''时使用Beautiful Soup访问属性的参数

时间:2013-10-19 14:31:29

标签: python html beautifulsoup

我正在使用BeautifulSoup来获取在html中设置的属性的值。

这是html:

<td align="center" bgcolor="white"><input name="period" type="radio" value="3"/></td>
<td align="center" bgcolor="white"><input checked="" name="period" type="radio" value="1"/></td>
<td align="center" bgcolor="white"><input name="period" type="radio" value="2"/></td>
<td align="center" bgcolor="white"><input name="period" type="radio" value="4"/></td>
<td align="center" bgcolor="white"><input name="period" type="radio" value="5"/></td>

我知道获得期间的价值(如果只有一个)那么我可以使用以下内容:

period = soup.find(name="input", attrs={'name': 'period'})['value']

然而,因为有多个period并且我只对指定值checked的那个感兴趣,所以我尝试了这个:

period = soup.find(name="input", attrs={'checked':'', 'name': 'period'})['value']

但是,checked=''的值只是默认为它遇到的第一个period

如何解决此问题

还有一个问题,如果我有,我想获得期间的值,但仅限于指定参数检查的字段但是作为checked =“”(我假设这就是为什么)它在我设置时不起作用有什么建议吗?

1 个答案:

答案 0 :(得分:2)

我遇到了类似的问题:

您需要将'checked':''更改为'checked':True

所以它应该是:

period = soup.find(name="input", attrs={'checked':True, 'name': 'period'})['value']