如何向Beautiful Soup元素添加元素
如果我有一个叫做 tab_window_uls[1] 的bs4元素:
<ul>
<li><b>Cut:</b> Sits low on the waist.</li>
<li><b>Fit:</b> Skinny through the leg.</li>
<li><b>Leg opening:</b> Skinny.</li>
</ul>
我该怎么往 <ul>
里添加新的 <li>
呢?
现在我的代码是这样的:
lines = ['a', 'b']
li_tag = tab_window_uls[1].new_tag('li')
for i in lines:
li_tag.string = i
tab_window_uls[1].b.string.insert_before(li_tag)
1 个回答
2
你需要像我一样创建一个新的标签,并把这个标签放在
- 标签里面。我先加载内容,然后创建一个标签。接着把这个标签放到另一个标签里面(就是把标签放到
- 标签里面)。然后再加载
- 标签。最后把新创建的
- 标签插入到树的某个位置。注意:如果你想把它放在最后一个
- 标签的位置,记得用append方法。
from bs4 import BeautifulSoup htmlText = ''' <ul> <li><b>Cut:</b> Sits low on the waist.</li> <li><b>Fit:</b> Skinny through the leg.</li> <li><b>Leg opening:</b> Skinny.</li> </ul> ''' bs = BeautifulSoup(htmlText) li_new_tag = bs.new_tag('li') li_new_tag.string = 'Size:' b_new_tag = bs.new_tag('b') b_new_tag.string = '0 through 12.' li_new_tag.append(b_new_tag) tags = bs.ul tags.insert(1, li_new_tag) print bs.prettify()