2013-07-05 20 views
6

Burada bir soruya bir etiket eklemeye çalışıyorum, bir BeautifulSoup yöntemini kullanıp kullanamayacağımı merak ediyorum veya düz dize işlemi kullanmalıyım.BeautifulSoup - etiketine bir özellik eklemek için

Bir örnek, bu garip bir açıklama olduğu için muhtemelen bunu açıklığa kavuşturacaktır.

HTML Kod şimdi görünüyor nasıl:

<option value="BC">BRITISH COLUMBIA</option> 

Ben bakmak istiyorum nasıl yardım

<option selected="" value="BC">BRITISH COLUMBIA</option> 

Teşekkür! BeautifulSoup ile kolay

cevap

16

:)

>>> from bs4 import BeautifulSoup 
>>> soup = BeautifulSoup('<option value="BC">BRITISH COLUMBIA</option>') 
>>> soup.find('option')['selected'] = '' 
>>> print soup 
<html><body><option selected="" value="BC">BRITISH COLUMBIA</option></body></html> 

nitelikler bir sözlük olarak bakılabilir. Yani biz {'value':'BC'} var ve bir sözlük için bir değer eklemek için, biz sadece dict[key] = value

+0

Büyük, teşekkürler! Burada olmama rağmen, bir sayfa çektim, sadece bu iller için arandığında, onların bir listesini oluşturdum. Bazılarının, istediğim etiketler olduğunu ve bazılarının "u" \ n "" olan ve nereden geldikleri hakkında hiçbir fikrim olmadığı "Navigatable Strings" olduğunu buldum. Onlardan kurtulmak için bir fikrin var mı? –

+1

@ KelanPoten-Coyle Muhtemelen listeyi filtreleyebilirsiniz: [i için i 'i eğer i listesinde i! = U' \ n '] '. Veya benzeri. Veya, illeri alırken 'find_all 'aramanızı belirtmeniz gerekebilir (find_all kullanıyorsunuzdur). – TerryA