Une recherche simple en utilisant uniquement les requêtes et Beautiful soup4.
Y = Youtube([query], result=[num])
la requête est un mot de recherche. Prend en charge le japonais. num est le nombre de résultats de recherche. Jusqu'à 20 pour le moment en raison de la nation de la page. S'il vous plaît jouer ici par vous-même.
Y.url >>Liste d'URL des résultats de recherche
Y.title >>Liste de titres
Y.id >>Liste d'identifiants (ID? Numéro unique comme JaDJbrwi0gk)
Y.embed >>Liste d'URL à coller
Y.time >>Liste des durées de lecture (peut ne pas être demandée)
Exemple)
print(Youtube("Unjash",result=5).url)
>> ['https://www.youtube.com/watch?v=JaDJbrwi0gk', 'https://www.youtube.com/watch?v=yGPAyqxrado', 'https://www.youtube.com/watch?v=tGl2Dp1v0gw', 'https://www.youtube.com/watch?v=myp35PyYk1A', 'https://www.youtube.com/watch?v=Tt1rkp3h1pM', 'https://www.youtube.com/watch?v=XIJqsqOCorw']
Y.select() >>Sélectionnez-en un dans les résultats de la recherche et renvoyez un dictionnaire pour les informations ci-dessus.
key = "url","title","id","embed","time"
Exemple)
movie = Y.select()
print(movie["url"]) >> https://www.youtube.com/watch?v=JaDJbrwi0gk
Il peut être efficace de le combiner avec d'autres API de téléchargement.
import requests
from bs4 import BeautifulSoup
class Youtube():
def __init__(self,query,result=10): #jusqu'à max20
search_url = "https://www.youtube.com/results?search_query=" + query
req = requests.get(search_url)
soup = BeautifulSoup(req.text.encode(req.encoding).decode('utf-8','strict'),"html5lib")
h3s = soup.find_all("h3", {"class":"yt-lockup-title"})[0:result+1]
self.data = [h3 for h3 in h3s]
self.url = ["https://www.youtube.com" + h3.a.get('href') for h3 in h3s]
self.title = [h3.a.get("title") for h3 in h3s]
self.id = [h3.a.get("href").split("=")[-1] for h3 in h3s]
self.embed = ["https://www.youtube.com/embed/" + h3.a.get("href").split("=")[-1] for h3 in h3s]
self.time = [h3.span.text.replace(" -longueur: ","").replace("。","") for h3 in h3s]
self.info = [h3.text for h3 in h3s] # >>Titre-Longueur: 00:00。
def select(self):
values = {"url":self.url,"title":self.title,"id":self.id,"embed":self.embed,"time":self.time}
info = self.info
for i in range(len(info)):
print("%s:%s" % (i,info[i]))
while True:
try:
num = int(input("nombre:"))
break
except:
print("Veuillez saisir correctement le numéro.")
results = {
"url":values["url"][num],
"title":values["title"][num],
"id":values["id"][num],
"embed":values["embed"][num],
"time":values["time"][num],
}
return results
if __name__ == '__main__':
Y = Youtube(input("Mot de recherche:"),result=5)
movie = Y.select()
print(movie["url"])
Recommended Posts