如何向Beautiful Soup元素添加元素

2 投票
1 回答
2095 浏览
提问于 2025-04-18 16:25

如果我有一个叫做 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()
      

撰写回答