Параметры для функции поиска

Я использую красивый суп (на Python). У меня есть такой скрытый входной объект:

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

Мне нужно значение id/value.

Вот мой код:

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

Что не так?

Ответ 1

Попробуйте использовать альтернативное attrs ключевое слово:

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

Вы не можете использовать аргумент ключевого слова называемое имя, потому что прекрасный суп методы поиска уже определяют имя аргумент. Вы также не можете использовать Python зарезервированное слово как для ключевого слова аргумент.

Красивый суп предлагает специальный аргумент, называемый attrs, который вы можете использовать в этих ситуациях. attrs - это словарь, который действует так же, как ключевые слова.