【问题标题】:Extract JSON in between <script> tags with BeautifulSoup使用 BeautifulSoup 在 <script> 标记之间提取 JSON
【发布时间】:2023-04-05 15:21:01
【问题描述】:

为新手问题道歉,但我已经坚持了一段时间。

情况如下:

  • 我正在尝试从 React.js 网站提取职位描述
  • 我设法通过 Python 使用 Beautiful Soup 获得以下结果
    bs_object = [<script type="application/ld+json">{
        "key-a": "value-a",
          "key-b": "value-b",
          "key-c": {
            "another-key": "another-value",
            "yet-another-key": "yet-another-value",
            }
          }
        }</script>]

我的问题?

我不知道如何访问字典中包含的值。

  • 我已经设法用一个简单的 bs_object[0] 摆脱了 [ ]
  • 尝试调用 bs_object[0]["key-b"] => 返回 KeyError
  • 尝试调用 bs_object[0].key-b => 返回无

也试过这个:Extract content of <Script with BeautifulSoup

底线是,我被卡住了。

你能帮忙吗?

【问题讨论】:

    标签: python json parsing beautifulsoup


    【解决方案1】:

    您提供的链接已有 5 年历史,它不是 python 3,这里是 python 3 工作版本。

    import json
    import requests
    from bs4 import BeautifulSoup
    
    page = requests.get("https://coronameter.cc")
    
    soup = BeautifulSoup(page.content, 'html.parser')
    
    data = json.loads(soup.find('script', type='application/ld+json').text)
    
    print(data["@type"])
    

    【讨论】:

    猜你喜欢
    • 2019-04-15
    • 2021-07-07
    • 2016-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-02
    • 2014-11-29
    • 1970-01-01
    相关资源
    最近更新 更多