替换HTML标记中的文本。美丽的汤

时间:2017-10-13 19:39:23

标签: python html web-scraping beautifulsoup

您知道是否可以将标签内的文字替换为另一个标签?

例如。在这种情况下:

 <td style="text-align:center;font-size:10px;line-height:10px; width:37px;">--</td>

我正在尝试废弃&#34; td&#34;标签并标记为&#34; span&#34;,但有些情况下没有标记&#34; span&#34;这是我想要废弃的那个。我想替换字符串&#34; - &#34;里面&#34; td&#34;标记:

 <span class="something"></span>

得到这样的东西:

   <td style="text-align:center;font-size:10px;line-height:10px; width:37px;"> <span class="something"></span></td>

我看到可以替换另一个标签,但我不知道这是否可行或如何做到

2 个答案:

答案 0 :(得分:0)

<td style="text-align:center;font-size:10px;line-height:10px; width:37px;">--</td>

在此TD标记中添加ID,然后

document.getElementById("td_id").innerHTML = "<span>your items</span>";

答案 1 :(得分:0)

即使你的意图不清楚,通过使用简单的jQuery你也可以达到效果。

$('td').html("<span class='something'></span>");

如果你想要的是将td内的所有内容放入新的span

var currentText = $('td').html();
$('td').html("<span class='something'>" + currentText +"</span>");

这将改变

<td style="...">Hello</td>

<td style="..."><span class="something">Hello</span></td>

希望你得到答案。

编辑:

此示例适用于您有td元素的情况,其中包含和不包含span元素。此代码在修改之前检查span内是否有直接子td

$("td").each(function(index) {
    if($(this).find('> span').length == 0){
        var currentText = $(this).html();
        $(this).html("<span class='something'>" + currentText +"</span>");
    }
});

在python中,使用pyquery包或等价物来操作html / xml并实现相同的效果。