Параметры для функции поиска - PullRequest
15 голосов
/ 20 мая 2010

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

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

Мне нужен идентификатор / значение.

Вот мой код:

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 Ответ

26 голосов
/ 20 мая 2010

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...