Homebrew Python - Programme de recherche YouTube

Une recherche simple en utilisant uniquement les requêtes et Beautiful soup4.

Comment utiliser

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.

scénario

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

Homebrew Python - Programme de recherche YouTube
Homebrew Python Partie 3 - Programme de recherche de produits d'Amazon
[Python] Programme d'achat
Rechercher et lire des vidéos YouTube avec Python
Recherche homebrew à partir du nom du module python (ShellScript)
Rechercher et télécharger automatiquement des vidéos YouTube avec Python
Recherche séquentielle avec Python
Exercice Python Recherche prioritaire sur 1 largeur
[Python] Recherche (itertools) ABC167C
Dichotomie avec Python
construction d'environnement python homebrew
Jouez à YouTube en Python
[Python] Recherche (NumPy) ABC165C
Recherche de bisection (python2.7) mémo
[Python] Recherche de bisection ABC155D
recherche complète de bits python
Recherche linéaire en Python
Dichotomie avec python
Dichotomie avec Python 3
Rechercher sur Twitter avec Python
Recherche binaire en Python
Obtenez des commentaires YouTube en Python
[Python] BFS (recherche de priorité de largeur) ABC168D
Programme de formation des nouveaux arrivants par Python
Obtenez des données Youtube avec python
Gestion de vidéos YouTube avec Python 3
Recherche de priorité de largeur / recherche bidirectionnelle (édition Python)
Algorithme de recherche utilisant word2vec [python]
[Python] DFS (recherche de priorité en profondeur) ATC001A
Recherche binaire en Python / C ++
Algorithme en Python (dichotomie)
Recherche de bits complète avec Python
[Python] DFS (recherche de priorité en profondeur) ABC157D
Installez pyenv depuis Homebrew, installez Python depuis pyenv
Les moteurs de recherche fonctionnent avec python
Rechercher des tweets Twitter avec Python
[Python] Recherche de priorité de profondeur et recherche de priorité de largeur
Rationalisez la recherche Web avec Python
[Algorithme Python] Un programme qui génère des réponses en allemand et en allemand à partir de la recherche de priorité en profondeur
Algorithme en Python (recherche de priorité de largeur, bfs)
Ecrire une dichotomie en Python
Configurer un environnement Python moderne avec Homebrew
Home Brew ne peut pas installer Python (chez Mavericks)
Déboguer un programme multi-processus python avec VSCode
Recherche de priorité de largeur (BPF) Peut-être compris (python)
Générateur de nombres premiers par Python
Reliez virtualenv python après la mise à niveau de Homebrew python
Programme de diagnostic de compatibilité écrit en python
Algorithme en Python (recherche de priorité en profondeur, dfs)
Maîtrisez la recherche linéaire! ~ Version d'implémentation Python ~
Écrire une recherche de priorité en profondeur en Python
Gérez chaque version de Python avec Homebrew
Reproduire la recherche à une touche avec Python 3.7.3. (Windows 10)
Recherche de priorité de profondeur à l'aide de la pile en Python
Lors de l'écriture d'un programme en Python
Recherche de 2 minutes Python et ses dérivés