Как получить результат из тега script?

Всем привет!
Хотел спарсить ссылку из видео .
Ссылка находится в script, поискав в интернете что ее оттуда можно вытащить с помощью библиотеки json, и метода .loads() соотвественно.
Но почему то возникает ошибка:
raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

Если кто-то сталкивался с такой проблемой,окажите помощь,если у вас есть свободное время,и желание.
Код прилагаю:
import requests
import json
from bs4 import BeautifulSoup

url = 'https://www.tiktok.com/@golden_men_6/video/6803237854542712070'

headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36'}


r = requests.get(url, headers=headers)

soup = BeautifulSoup(r.content, 'html.parser')
script = soup.find('script', attrs={'id': 'videoObject'})

data = json.loads(script.text)
video_url = data['contentUrl']
print(video_url)

P.S. извините если вопрос глупый,или тут банальная ошибка,в гугле провел уже много времени,но решения так и не нашел
  • Вопрос задан
  • 2013 просмотров
Решения вопроса 1
origami1024
@origami1024
went out for a night walk
Код ОПа полностью рабочий если изменить одну букву
import requests
import json
from bs4 import BeautifulSoup

url = 'https://www.tiktok.com/@golden_men_6/video/6803237854542712070'

headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36'}


r = requests.get(url, headers=headers)

soup = BeautifulSoup(r.content, 'html.parser')
script = soup.find('script', attrs={'id': 'videoObject'})

data = json.loads(script.next)
video_url = data['contentUrl']
print(video_url)


spoiler

script.next вместо script.text
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@dadasay
import requests
import json
from bs4 import BeautifulSoup

url = 'https://www.tiktok.com/@golden_men_6/video/6803237...'

headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36'}

r = requests.get(url, headers=headers)

soup = BeautifulSoup(r.text, 'html.parser')
script = soup.find('script', attrs={'id': 'videoObject'})

data = json.loads(str(script.contents[0]))
video_url = data['contentUrl']
print(video_url)
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы