Youtube-Comments / parser.py
students
Add scripts
7b715b6
Raw
History Blame Contribute Delete
1.38 kB
import requests
from requests.exceptions import MissingSchema
def extract_titles(url = "https://www.youtube.com/watch?v=CuSxk_DNau8&ab_channel=PeppaPigParodies"):
try:
page = requests.get(url)
except MissingSchema as e:
message = e.args[0]
substr = '''No scheme supplied. '''
message = message[:message.find(substr)] + message[message.find(substr) + len(substr):]
raise RuntimeError(message)
except Exception as e:
message = f'''Invalid URL '{url}'. Please, try another one.'''
raise RuntimeError(message)
if not page.ok:
message = '''This video isn't available.'''
raise RuntimeError(message)
try:
txt = page.text
title_start = '''meta name="title" content="'''
pos = txt.find(title_start)
if pos == -1:
raise RuntimeError
title = txt[pos + len(title_start):]
title = title[:title.find('"')]
channel_start = '''<link itemprop="name" content="'''
pos = txt.find(channel_start)
if pos == -1:
raise RuntimeError
channel = txt[pos + len(channel_start):]
channel = channel[:channel.find('"')]
except Exception as e:
message = '''Can't detect channel or video title.\nPlease, try another link.'''
raise RuntimeError(message)
return channel, title