如何在Beautifulsoup中按标签包装?

时间:2018-02-09 14:16:48

标签: python string beautifulsoup

我想用p标签包装很多div元素/块的内容:



<div class='value'>
  some content
</div>
&#13;
&#13;
&#13;

应该成为:

&#13;
&#13;
<div class='value'>
  <p>
    some content
  </p>
</div>
&#13;
&#13;
&#13;

我的想法是通过使用find_all过滤字符串来获取内容(使用bs4),然后使用新标记将其包装起来。不知道,如果它的工作。我无法从具有特定属性/值的标签中过滤内容。

我可以用正则表达式代替bs4。但是我想在bs4中进行所有转换(除此之外还有更多转换)。

1 个答案:

答案 0 :(得分:1)

信不信由你,你可以使用wrap。 : - )

因为您可能或可能不想包装内部$(document).on('click', 'button:contains("Add")', function(){ $("#tile-add-modal").modal('show'); $curPosition = $(this).data('position'); $('#modal-save').off('click'); $('#modal-save').on('click', function(){ $curIndex = $('#tile-select .active').index('#tile-select .carousel-item'); $curData = $('#tile-select .active').carousel($curIndex).data('value'); $dataDisplay = JSON.parse($curData.display); $dataSettings = JSON.parse($curData.settings); $dataConfig = JSON.parse($('div.campaign-tiles [data-tile-position="' + $curPosition + '"]').val()); $('div.campaign-tiles .btn-tile[data-position="' + $curPosition + '"]').text('Edit').attr('data-tile-id', $curData.tile_id).attr('data-target', '#tile-edit-modal'); $('div.campaign-tiles [data-title-position="' + $curPosition + '"]').text($curData.name); $('div.campaign-tiles [data-color-position="' + $curPosition + '"]').removeClass($('div.campaign-tiles [data-color-position="' + $curPosition + '"]').data('color-value')).addClass($dataDisplay.color).data('color-value', $dataDisplay.color); $('div.campaign-tiles [data-icon-position="' + $curPosition + '"]').attr('class', 'far fa-' + $dataDisplay.icon); $('div.campaign-tiles [data-type-position="' + $curPosition + '"]').text($dataSettings.type); var frmData = {}; frmData.data = {}; $('#tile-select .carousel-item.active :input').each(function(){ if($(this).attr('name') == 'title') { frmData[$(this).attr('name')] = $(this).val(); } else { frmData['data'][$(this).attr('name')] = $(this).val(); } }); $dataConfig.position = $curPosition; $dataConfig.tile_id = $curData.tile_id; $dataConfig.configuration = JSON.stringify(frmData); $('div.campaign-tiles [data-tile-position="' + $curPosition + '"]').attr('data-tile-id', $curData.tile_id).val(JSON.stringify($dataConfig)); $('#tile-add-modal input[type="text"').val(''); }); }); 元素,所以我决定稍微改变您的HTML代码,以便我可以为您提供显示如何更改内部{{1}的代码不改变它的“外部”。你会看到如何改变所有div,我敢肯定。

这是怎么做的。

div