python将beautifulsoup输出转换为dict/json

python将beautifulsoup输出转换为dict/json,python,json,dictionary,web-scraping,beautifulsoup,Python,Json,Dictionary,Web Scraping,Beautifulsoup,我试图从亚马逊的一个产品页面中获取数据。我已经用beautifulsoup做了全部标记。我希望获得以下json格式的必要产品详细信息 { asin: string, title: string, price: number, listPrice: number, prime: boolean, dimensions: { height: number, length: number, width: number, weight: numb

我试图从亚马逊的一个产品页面中获取数据。我已经用beautifulsoup做了全部标记。我希望获得以下json格式的必要产品详细信息

{
  asin: string,
  title: string,
  price: number,
  listPrice: number,
  prime: boolean,

  dimensions: {
    height: number,
    length: number,
    width: number,
    weight: number,
  },
  images: Array<string>,
  attributes: Array<{ name: string, value: string }>,
  categories: <{ node: string, title: string }>,

}
编辑2:我提供了一些我需要的产品详细信息的html

#######title#########
<span class="a-size-large" id="productTitle">
  MagicBrite Complete Teeth Whitening Kit At Home Whitening
</span>


  #########price#####
<span class="a-color-price">
    <span class="p13n-sc-price">$11.85</span>
</span>



  ############images#########

<li class="a-spacing-small item"><span class="a-list-item">
<span class="a-declarative" data-action="thumb-action" data-thumb-action='{"thumbnailIndex":4,"variant":"PT04","index":4,"type":"image"}'>
<span class="a-button a-button-thumbnail a-button-toggle"><span class="a-button-inner"><input class="a-button-input" type="submit"/><span aria-hidden="true" class="a-button-text">
<img alt="" src="https://images-na.ssl-images-amazon.com/images/I/51f8kCdwmqL._SS40_.jpg"/>
</span></span></span>
</span>
</span></li>
<li class="a-spacing-small item"><span class="a-list-item">
<span class="a-declarative" data-action="thumb-action" data-thumb-action='{"thumbnailIndex":5,"variant":"PT05","index":5,"type":"image"}'>
<span class="a-button a-button-thumbnail a-button-toggle"><span class="a-button-inner"><input class="a-button-input" type="submit"/><span aria-hidden="true" class="a-button-text">
<img alt="" src="https://images-na.ssl-images-amazon.com/images/I/517mTOTBEiL._SS40_.jpg"/>
</span></span></span>
</span>
</span></li>
标题#########
MagicBrite全套牙齿美白套装,家庭美白
#########价格#####
$11.85
############图像#########
  • 手动

    data = {
        'asin': soup.find(id="ASIN").attrs['value'],
        'title': soup.find(id="title").text.strip(),
        'price': soup.find(id="price").find(id="priceblock_ourprice").text.strip(),
        ....
    }
    
    价格
    似乎有点隐藏,在不同的页面上查找实际的“最终价格”可能会有所不同

    最后,一旦准备好了
    dict
    ,只需将其馈送到
    json.dumps()


    如果亚马逊决定改变他们的加价,事情可能会破裂。

    欢迎来到Stack!提问时的一般规则是尽可能多地提供细节。包括您可能编写的任何代码和任何其他信息,例如针对此特定问题的html。也!您应该尝试在stack overflow中搜索已经回答过的类似问题,例如此处Anusha感谢您的编辑。但是,如果您提供希望提取的html,它将有助于鼓励人们回答这个问题。通过提供尽可能多的信息,用户很可能会回答这个问题。感谢您的指导!实际上html非常大,我不知道如何上传你在问题中提到的,你想提取产品细节的内容。只需显示添加和编辑此信息的html结构@朱利安西尔维斯特里
    data = {
        'asin': soup.find(id="ASIN").attrs['value'],
        'title': soup.find(id="title").text.strip(),
        'price': soup.find(id="price").find(id="priceblock_ourprice").text.strip(),
        ....
    }
    
    import json
    result = json.dumps(data)