@Wolron

Почему JSON.loads выдает ошибку?

В переменной есть и HTML теги и JavaScript данные. Нужно в словарь Python поместить часть спарсенной страницы ,которая выглядит : "ключ" : "значение".

Этот скрипт почему-то выдает ошибку

TypeError: the JSON object must be str, bytes or bytearray, not BeautifulSoup


import requests # модуль для парсинга
from bs4 import BeautifulSoup #модуль для парсинга
import json 

s = requests.Session()
loging = s.get(URL, headers=HEADERS, params=None)
soup = BeautifulSoup(loging.content, 'html.parser')
json_dat = json.loads(soup)
  • Вопрос задан
  • 336 просмотров
Пригласить эксперта
Ответы на вопрос 2
trapwalker
@trapwalker Куратор тега Python
Программист, энтузиаст
Вот вы делаете объект-парсер html:
soup = BeautifulSoup(loging.content, 'html.parser')

а вот суёте его вместо строки в парсер josn'а:
json_dat = json.loads(soup)
Вот вам об этом говорится в сообщении об ошибке:
TypeError: the JSON object must be str, bytes or bytearray, not BeautifulSoup

Вы пытаетесь засунуть в бензобак автомобиля целиком бензоколонку. Не лезет.
Вам нужно найти способ извлечь из бензоколонки бензин и поместить его в бензобак.
Ответ написан
SoreMix
@SoreMix Куратор тега Python
yellow
import requests # модуль для парсинга
from bs4 import BeautifulSoup #модуль для парсинга
import json 

s = requests.Session()
loging = s.get(URL, headers=HEADERS, params=None)
# при условии, что страница JSON валидна
json_dat = json.loads(loging.text)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы