@D55RUS

Как вытащить json из html?

Код:
<script type="application/json" id="requirejs.config">
		{some_json}
	</script>

Не понимаю как отсюда вытащить {some_json}, помогите кто шарит пожалуйста
  • Вопрос задан
  • 1595 просмотров
Решения вопроса 1
Ternick
@Ternick
Нужно использовать библиотеку которая дружит с html.
Например beautifulsoup в змейке.
Она может достать любой текст из любого тега, даже script.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
hottabxp
@hottabxp Куратор тега Python
Сначала мы жили бедно, а потом нас обокрали..
Решение:
script = soup.find('script',id='requirejs.config').string

в script будет всё, что между
<script type="application/json" id="requirejs.config">
и
</script>

Можно так:
import json
from bs4 import BeautifulSoup

html = '''
<!DOCTYPE html>
  <body>
<script type="application/json" id="requirejs.config">
{
  "name": "John",
  "age": 30,
  "isAdmin": false,
  "courses": ["html", "css", "js"],
  "wife": null
}
  </script>
  </body>
</html>
'''
soup = BeautifulSoup(html,"html.parser")

script = soup.find('script',type="application/json")
my_json = str(script)[55:-12]
print(json.loads(my_json)['name'])

Вывод:
John
Самое интересное здесь - это строка "my_json = str(script)[55:-12]":
55 - удаляем с самого начала
<script type="application/json" id="requirejs.config">
-12 - удаляем с конца </script>

В my_json у нас будет все, что находится внутри тега script.
Ответ написан
Ваш ответ на вопрос

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

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