2013-07-05 103 views
6

這裏的問題,我想在這裏添加一個屬性標籤,想知道我是否可以使用BeautifulSoup方法,或者應該使用純字符串操作。BeautifulSoup - 爲標籤添加屬性

一個例子可能會說明這一點,因爲這是一個奇怪的解釋。

怎樣的HTML代碼現在看起來:

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

如何,我想它看起來:

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

感謝您的幫助!

回答

16

易與BeautifulSoup :)

>>> 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> 

屬性可以在一個字典中查找。所以我們有{'value':'BC'},並且爲字典增加一個值,我們只是做dict[key] = value

+0

太好了,謝謝!雖然我有你在這裏,但如果我已經寫了一頁,爲這些省找遍了,就創建了一份清單。我發現其中一些標籤是我想要的,有些是「可導航字符串」,都是「u'\ n'」,我不知道它們來自哪裏。任何想法擺脫它們? –

+1

@ KelanPoten-Coyle你可以過濾一下列表:'[我爲我在the_list如果我!= u'\ n']''。或類似的東西。或者,您可能需要在獲取省份時指定您的'find_all'搜索(我假設您正在使用find_all) – TerryA