1. ホーム
  2. python

[解決済み] ビューティフルスープ分解()

2022-02-07 22:30:40

質問

を削除しようとしています。 <script> タグと、beatifulsoupを活用したタグ内のコンテンツです。ドキュメントを見てみましたが、本当に簡単な関数を呼び出すようです。この関数の詳細については こちら . ここまで解析したhtmlページの内容は以下の通りです...。

<body class="pb-theme-normal pb-full-fluid">
    <div class="pub_300x250 pub_300x250m pub_728x90 text-ad textAd text_ad text_ads text-ads text-ad-links" id="wp-adb-c" style="width: 1px !important;
    height: 1px !important;
    position: absolute !important;
    left: -10000px !important;
    top: -1000px !important;
    ">
</div>
<div id="pb-f-a">
</div>
    <div class="" id="pb-root">
    <script>
    (function(a){
        TWP=window.TWP||{};
        TWP.Features=TWP.Features||{};
        TWP.Features.Page=TWP.Features.Page||{};
        TWP.Features.Page.PostRecommends={};
        TWP.Features.Page.PostRecommends.url="https://recommendation-hybrid.wpdigital.net/hybrid/hybrid-filter/hybrid.json?callback\x3d?";
        TWP.Features.Page.PostRecommends.trackUrl="https://recommendation-hybrid.wpdigital.net/hybrid/hybrid-filter/tracker.json?callback\x3d?";
        TWP.Features.Page.PostRecommends.profileUrl="https://usersegment.wpdigital.net/usersegments";
        TWP.Features.Page.PostRecommends.canonicalUrl=""
    })(jQuery);

    </script>
    </div>
</body>

というBeautifulSoupオブジェクトの中に、このようなウェブコンテンツがあると想像してください。 soup_html . もし私が soup_html.script.decompose() を呼び出し、そのオブジェクトを soup_html スクリプトタグはまだ残っています。どうすれば <script> と、そのタグの中のコンテンツは?

markup = 'The html above'
soup = BeautifulSoup(markup)
html_body = soup.body

soup.script.decompose()

html_body

解決方法は?

<ブロッククオート

soup.script.decompose()

を削除することになります。 単一スクリプト要素 から、"Soup" だけです。むしろ、全部分解してしまえという意味ではないでしょうか。

for script in soup("script"):
    script.decompose()