2010-05-20 49 views
14

我正在使用美丽的汤(在Python中)。我有这样的隐藏输入对象:查找函数的参数

<input type="hidden" name="form_build_id" id="form-531f740522f8c290ead9b88f3da026d2" value="form-531f740522f8c290ead9b88f3da026d2" /> 

我需要id /值。

这里是我的代码:

mainPageData = cookieOpener.open('http://page.com').read() 
soupHandler = BeautifulSoup(mainPageData) 

areaId = soupHandler.find('input', name='form_build_id', type='hidden') 

TypeError: find() got multiple values for keyword argument 'name' 

我试图改变代码:

print soupHandler.find(name='form_build_id', type='hidden') 
None 

有什么不对?使用

回答

24

尝试alternative attrs keyword

areaId = soupHandler.find('input', attrs={'name':'form_build_id', 'type':'hidden'}) 

不能使用关键字参数 叫名字,因为美丽的汤 搜索方法已定义名称 说法。您也不能使用类似于Python的 保留字作为关键字 参数。

美丽的汤提供了一个特殊的 参数称为attrs,你可以在这些情况下使用 。 attrs是一个 字典,它的作用就像 关键字参数。