Как спарсить элемент contentUrl, когда сервер отправляет не только json но и html код

import requests

resp = requests.get('https://ru.pinterest.com/pin/211174974203236/')
print(resp.text)

вот этот код возращает ответ и ответ там довольно большой, мне нужно получить с нее contentUrl, этот элемент почти в самом низу, я бы мог просто превратить это в json, но выдает ошибку из за html кода вначале


Ответы (2 шт):

Автор решения: Bail

я сделал через find(), в функцию вставляю contentUrl, она возращает индекс буквы с, и я принчу через индекс от с до след 100 символов, делаю сплит по “, и вывожу второй элемент и это и есть ссылка, которая мне нужна

→ Ссылка
Автор решения: Pavel Mertvago

в теории длина возвращаемой ссылки может быть больше, чем 100 символов (как в ответе @Bail). здесь поиск contentUrl реализован через re.Patterns и гарантированно возвращает текст ссылки целиком

import json
import re
import requests

resp = requests.get('https://ru.pinterest.com/pin/211174974203236/')
pattern = r'"contentUrl":"(https://[^"]+)"'
match = re.search(pattern, resp.text)

if match:
    content = json.loads('{'+match.group(0)+'}')
    print(content['contentUrl'])
→ Ссылка