2010-05-20 42 views
14

Tôi đang sử dụng món súp tuyệt đẹp (bằng Python). Tôi có đối tượng nhập ẩn như vậy:Tham số cho chức năng tìm kiếm

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

Tôi cần có id/giá trị.

Đây là mã của tôi:

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' 

Tôi cố gắng để thay đổi mã:

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

Có chuyện gì vậy?

Trả lời

24

Hãy thử sử dụng alternative attrs keyword:

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

Bạn không thể sử dụng một từ khóa luận gọi tên vì Súp phương pháp tìm kiếm Đẹp đã xác định một tên tranh cãi. Bạn cũng không thể sử dụng một từ dành riêng cho Python như đối số từ khóa .

Súp đẹp cung cấp đối số đặc biệt được gọi là attrs mà bạn có thể sử dụng trong các trường hợp này. attrs là một từ điển hoạt động giống như đối số từ khóa .

Các vấn đề liên quan