2010-05-20 17 views
14

Estoy usando sopa hermosa (en Python). Tengo tal objeto de entrada oculto:Parámetros para la función de búsqueda

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

I need in id/value.

Aquí está mi código:

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' 

He intentado cambiar el código:

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

¿Qué ocurre?

Respuesta

24

intente utilizar el alternative attrs keyword:

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

No se puede usar un argumento llamado nombre de palabra clave porque las Bellas sopa métodos de búsqueda ya definir un nombre argumento. Tampoco puede usar una palabra reservada de Python como para una palabra clave argumento.

Beautiful Soup proporciona un argumento especial llamado attrs que puede usar en estas situaciones. attrs es un diccionario que actúa como los argumentos de la palabra clave .

Cuestiones relacionadas