48 lines
1.1 KiB
Python
48 lines
1.1 KiB
Python
"""This module does render video"""
|
|
|
|
import sys
|
|
import requests
|
|
from bs4 import BeautifulSoup
|
|
|
|
BASE_URL = 'https://www.youtube.com'
|
|
|
|
SEARCH_FILTER = '&sp=EgIQAQ%253D%253D'
|
|
|
|
URL = BASE_URL + '/results?search_query=' + sys.argv[1] + SEARCH_FILTER
|
|
|
|
HTML = requests.get(URL).text
|
|
|
|
SOUP = BeautifulSoup(HTML, 'lxml')
|
|
|
|
FIRST = True
|
|
|
|
for vid in SOUP.find_all(class_='yt-lockup-content'):
|
|
try:
|
|
link = BASE_URL + vid.h3.a['href']
|
|
title = vid.h3.a.text
|
|
description = vid.h3.span.text
|
|
author = vid.find(class_='yt-lockup-byline').a.text
|
|
meta = vid.find(class_='yt-lockup-meta').ul.contents
|
|
time = meta[0].text
|
|
views_str = meta[-1].text[:-6]
|
|
views = int(views_str.replace(',', ''))
|
|
|
|
except TypeError:
|
|
continue
|
|
|
|
if FIRST:
|
|
FIRST = False
|
|
else:
|
|
print()
|
|
|
|
print(f' title: {title}')
|
|
print(f' url: {link}')
|
|
print(f' channel: {author}')
|
|
print(f' uploaded: {time}')
|
|
print(f' views: {views_str}')
|
|
|
|
# test
|
|
# f = open('output.xml','w')
|
|
# f.write(str(SOUP))
|
|
# f.write(soup.encode('utf-8'))
|