2010-05-20 50 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是一個 字典,它的作用就像 關鍵字參數。