Извлечение JSON между <script>тегами с BeautifulSoup - PullRequest
0 голосов
/ 29 апреля 2020

Извиняюсь за новый вопрос ie, но я застрял на этом некоторое время.

Вот ситуация:

  • Я пытаюсь найти работу описание с сайта React. js
  • Мне удалось получить следующее с помощью Beautiful Soup с Python
    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"] => возвращает a KeyError
  • Пробный вызов bs_object [0] .key-b => возвращает None

Также пробовал это: Извлечь содержимое

1 Ответ

1 голос
/ 29 апреля 2020

Ссылка, которую вы предоставили, 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"])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...