【问题标题】:Modify tags Beautiful Soup修改标签美汤
【发布时间】:2014-06-30 14:05:08
【问题描述】:

我正在尝试使用漂亮的汤来修改 python 中的每个标签。有一堆不同的 td 标签,我试图将每个具有特定属性的 td 标签变成别的东西。比如有

<td class="station"> ... </td>

上面的标签我不想改,但是后面有

<td class="menuitem"> ... </td>

我想修改所有这些

<td class="menuitem"> ... </td>

类似

<body class="menuitem"> ... </body>

只是为了澄清我想要每个

<td class="menuitem"> ... </td>

改变了,不仅仅是第一个。

提前感谢您的帮助! :)

【问题讨论】:

    标签: python html beautifulsoup


    【解决方案1】:

    我相信我会这样做:

    for tag in soup.select('td.menuitem'):
        tag.name = 'body' # mutates the tag in `soup`!
    

    (这里使用css选择器,相当于soup.find_all('td', attrs={'class':'menuitem'})

    演示:

    s = '''<td class="station"> no touchies </td><td class="menuitem"> foo </td><td class="menuitem"> bar </td><td class="menuitem"> baz </td>'''
    
    soup = BeautifulSoup(s)
    
    soup
    Out[111]: <html><body><td class="station"> no touchies </td><td class="menuitem"> foo </td><td class="menuitem"> bar </td><td class="menuitem"> baz </td></body></html>
    
    for tag in soup.select('td.menuitem'):
        tag.name = 'body'
    
    soup
    Out[113]: <html><body><td class="station"> no touchies </td><body class="menuitem"> foo </body><body class="menuitem"> bar </body><body class="menuitem"> baz </body></body></html>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-07-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-05
      • 2016-03-22
      • 2021-04-16
      相关资源
      最近更新 更多