2010-05-20 17 views
14

मैं सुंदर सूप (पायथन में) का उपयोग कर रहा हूं। मेरे पास ऐसी छिपी हुई इनपुट ऑब्जेक्ट है:फ़ंक्शन खोजने के लिए पैरामीटर

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

मुझे आईडी/मान में आवश्यकता है।

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

क्या गलत है:

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' 

मैं कोड बदलने की कोशिश की:

यहाँ मेरी कोड है?

उत्तर

24

का उपयोग करके देखें alternative attrs keyword:

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

आप कीवर्ड तर्क कहा जाता है नाम का उपयोग नहीं कर सकते क्योंकि ब्यूटीफुल सूप खोज तरीकों पहले से ही एक नाम तर्क परिभाषित करते हैं। आप एक पायथन आरक्षित शब्द जैसे कि तर्क के रूप में भी उपयोग नहीं कर सकते हैं।

सुंदर सूप विशेष तर्क प्रदान करता है जिसे अटर्स कहा जाता है जिसे आप इन परिस्थितियों में उपयोग कर सकते हैं। attrs शब्दकोश है जो कीवर्ड तर्कों की तरह कार्य करता है।

संबंधित मुद्दे