【问题标题】:Beautifulsoup JSON Remove textBeautifulsoup JSON 删除文本
【发布时间】:2021-04-24 04:29:23
【问题描述】:

谁能解释我如何用beautifulsoup 抓取这些数据?由于''Description''标签,我找不到元素。

我想删除描述中的文本,直到品牌元素的开始。

使用 Python。

谢谢!


{
    "@context": "http://schema.org/",
    "@type": "Product",
    "name": "",
    "description": "<div class="textblock"><p><style>
    .infobox {
    padding: 10px;
margin: 5px;
    background-color: #fffb98;
    border-radius: 10px;
    }
</style>
    <div class="textblock">
    <h2>PlayStation 5</h2>
    <div class="infobox">
<h3>Informatie over pre-orders</h3>
 <p><strong>Het is niet mogelijk om via onze webshop een pre-order te plaatsen.</strong></p>
    <p>Heb jij reeds een pre-order geplaatst op de PlayStation 5? Dan neemt de winkel waar jij dit deed <strong>vanaf 17 september zo spoedig mogelijk telefonisch contact met je op</strong> om de status van je pre-order te bespreken. Wij nemen in <strong>chronologische volgorde</strong> contact op met al onze PS5 pre-order klanten geplaatst tot en met 16 september 2020. Naargelang de datum waarop jij je pre-order plaatste kan het <strong>tot 10 dagen</strong> duren alvorens je winkel telefonisch contact met je opneemt.</p>
    <p>Had jij vóór 17 september 2020 nog geen pre-order geplaatst op de PlayStation 5? Ga dan langs in jouw Game Mania store om een pre-order te plaatsen en kom chronologisch op de PS5 wachtlijst te staan. Bij het plaatsen van een nieuwe pre-order is een aanbetaling van € 50 verplicht.</p>
    </div>
    <p><strong>Welkom in een nieuwe wereld van realistisch gamen</strong></p>
    <p>Ontdek een diepere game-ervaring op PS5™ met ondersteuning voor haptische feedback, adaptieve triggers en 3D-audiotechnologie.<br>
    <br>
    <strong>Voel meer met haptische feedback</strong></p>
    <p>Geniet van haptische feedback via de draadloze DualSense™-controller in geselecteerde PS5-games en ervaar de effecten en impact van je acties in de game met je zintuigen.</p>
    <p><strong>Voel de weerstand met adaptieve triggers</strong></p>
    <p>Maak gebruik van meeslepende adaptieve triggers met dynamische weerstandsniveaus die de fysieke impact van in-game activiteiten in geselecteerde PS5-games simuleren.</p>
    <p><strong>Kijk met geluid dankzij 3D-audio</strong></p>
    <p>Duik in muzikale panorama's waar het voelt alsof het geluid uit elke richting komt. Met Tempest 3D AudioTech in ondersteunde games komt je omgeving echt tot leven via je hoofdtelefoon of de luidsprekers van je tv.</p>
    </div>
</p></div>",
    "brand": {
        "@type": "Thing",
        "name": "Game Mania"
    },
    "aggregateRating": {
        "@type": "AggregateRating",
        "ratingValue": "4",
        "ratingCount": "5187"
    },
    "offers": {
        "@type": "Offer",
        "priceCurrency": "EUR",
        "price": "499",
        "availability" : "OutOfStock"
    }
}

【问题讨论】:

    标签: python json beautifulsoup


    【解决方案1】:

    认为您不需要beautifulsoup 来使用json.loads() 加载您抓取的string 并以dictionary 访问它。

    尝试替换 \n,这是 json.loads() 无法处理的:

    json.loads(string.replace('\n',''))
    

    示例

    import json
    
    string = '''{
        "@context": "http://schema.org/",
        "@type": "Product",
        "name": "",
        "description": "<div class="textblock"><p><style> .infobox {
        padding: 10px;
    margin: 5px;
        background-color: #fffb98;
        border-radius: 10px;
        }
    </style>
        <div class="textblock">
        <h2>PlayStation 5</h2>
        <div class="infobox">
    <h3>Informatie over pre-orders</h3>
     <p><strong>Het is niet mogelijk om via onze webshop een pre-order te plaatsen.</strong></p>
        <p>Heb jij reeds een pre-order geplaatst op de PlayStation 5? Dan neemt de winkel waar jij dit deed <strong>vanaf 17 september zo spoedig mogelijk telefonisch contact met je op</strong> om de status van je pre-order te bespreken. Wij nemen in <strong>chronologische volgorde</strong> contact op met al onze PS5 pre-order klanten geplaatst tot en met 16 september 2020. Naargelang de datum waarop jij je pre-order plaatste kan het <strong>tot 10 dagen</strong> duren alvorens je winkel telefonisch contact met je opneemt.</p>
        <p>Had jij vóór 17 september 2020 nog geen pre-order geplaatst op de PlayStation 5? Ga dan langs in jouw Game Mania store om een pre-order te plaatsen en kom chronologisch op de PS5 wachtlijst te staan. Bij het plaatsen van een nieuwe pre-order is een aanbetaling van € 50 verplicht.</p>
        </div>
        <p><strong>Welkom in een nieuwe wereld van realistisch gamen</strong></p>
        <p>Ontdek een diepere game-ervaring op PS5™ met ondersteuning voor haptische feedback, adaptieve triggers en 3D-audiotechnologie.<br>
        <br>
        <strong>Voel meer met haptische feedback</strong></p>
        <p>Geniet van haptische feedback via de draadloze DualSense™-controller in geselecteerde PS5-games en ervaar de effecten en impact van je acties in de game met je zintuigen.</p>
        <p><strong>Voel de weerstand met adaptieve triggers</strong></p>
        <p>Maak gebruik van meeslepende adaptieve triggers met dynamische weerstandsniveaus die de fysieke impact van in-game activiteiten in geselecteerde PS5-games simuleren.</p>
        <p><strong>Kijk met geluid dankzij 3D-audio</strong></p>
        <p>Duik in muzikale panorama's waar het voelt alsof het geluid uit elke richting komt. Met Tempest 3D AudioTech in ondersteunde games komt je omgeving echt tot leven via je hoofdtelefoon of de luidsprekers van je tv.</p>
        </div>
    </p></div>",
        "brand": {
            "@type": "Thing",
            "name": "Game Mania"
        },
        "aggregateRating": {
            "@type": "AggregateRating",
            "ratingValue": "4",
            "ratingCount": "5187"
        },
        "offers": {
            "@type": "Offer",
            "priceCurrency": "EUR",
            "price": "499",
            "availability" : "OutOfStock"
        }
    }'''
    
    res_dict = json.loads(string.replace('\n',''))
    
    print(res_dict['brand']['name'])
    

    输出

    Game Mania
    

    【讨论】:

    • 但是 jsonformatter 在我过去时会报错...bs 不会报错吗?
    • @NullumCC:你运行我的示例代码吗?它替换了换行符,然后 json 工作正常。
    • 但它是来自网站的数据,所以它正在监控它。
    • 无法添加我自己的 json 文件,因为它不会更新。
    • 不确定,打开您的 jupyter notbook 或 ide 并运行示例以查看并了解会发生什么的问题出在哪里?您的问题不包含任何代码,所以我应该如何知道您到底在做什么 - 请改进您的问题,以便我们可以重现您的问题。 How to create a Minimal, Reproducible Example谢谢
    猜你喜欢
    • 1970-01-01
    • 2023-04-06
    • 2023-03-19
    • 1970-01-01
    • 2021-05-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多