[PYTHON] J'ai essayé de gratter YouTube, mais je peux utiliser l'API, alors ne le faites pas.

Je l'ai fait il y a longtemps pour saisir la tendance de YouTube, mais maintenant ça va avec l'API

service commémoratif Aussi, ne grattez pas YouTube


from selenium import webdriver
import time
from selenium.webdriver.common.action_chains import ActionChains
import urllib.parse


def main():
    #Rechercher un mot
    search_words = ['onde α', 'dormir']
    #Chrome ouvert
    driver = webdriver.Chrome('../chromedriver')
    s = '+'.join(map(urllib.parse.quote, search_words))
    driver.get("https://www.youtube.com/results?search_query=" + s + '&sp=CAM%253D')
    info_list = []
    time.sleep(1)
    for i in range(10):
        driver.execute_script("scrollBy(0, 1000);")
    for i in range(35, 45):
        info = {'title': '', 'url': '', 'channel': '', 'registrant': 0, 'release': ''}
        loop_flag = 0
        selector = f'#contents > ytd-item-section-renderer:nth-child({i // 20 + 1}) > #contents > ytd-video-renderer:nth-child({20 if i % 20 == 0 else i % 20}) > #dismissable > #video-title > yt-formatted-string'
        while loop_flag <= 2:
            try:
                element = driver.find_element_by_css_selector(selector)
                actions = ActionChains(driver)
                actions.move_to_element(element)
                actions.perform()
                info['url'] = element.get_attribute('href')
                break
            except Exception as e:
                print(i, e)
                print(selector)
                loop_flag += 1
                time.sleep(1)
        if not info['url'] == '':
            info_list += info
    print(info_list)
    print(len(info_list))
    driver.quit()


if __name__ == "__main__":
    main()


Recommended Posts

J'ai essayé de gratter YouTube, mais je peux utiliser l'API, alors ne le faites pas.
J'utilise python mais je ne connais pas bien la classe, donc je vais donner un tutoriel
J'ai essayé de toucher l'API COTOHA
J'ai essayé de l'étendre pour que la base de données puisse être utilisée avec le logiciel d'analyse de Wiire
J'ai installé PySide2, mais pyside2-uic ne fonctionnait pas, alors j'ai réussi à le faire.
J'ai essayé de publier mon propre module pour pouvoir l'installer
J'ai essayé d'utiliser Java avec Termux en utilisant Termux Arch, mais cela n'a pas fonctionné
J'ai essayé d'utiliser Resultoon sur Mac + AVT-C875, mais j'étais frustré en chemin.
Je n'ai pas compris le redimensionnement de TensorFlow, alors je l'ai résumé visuellement.
Je voulais utiliser le module de recherche d'Ansible2, mais cela a pris du temps, alors prenez note
L'arbre.plot_tree de scikit-learn était très simple et pratique, j'ai donc essayé de résumer comment l'utiliser facilement.
J'ai essayé de créer OneHotEncoder, qui est souvent utilisé pour l'analyse des données, afin qu'il puisse atteindre l'endroit qui démange.
[Première API COTOHA] J'ai essayé de résumer l'ancienne histoire
J'ai essayé de rechercher des vidéos à l'aide de l'API de données Youtube (débutant)
J'ai essayé d'obtenir diverses informations de l'API codeforces
J'ai essayé de résumer comment utiliser à nouveau le référentiel EPEL
[Pour ceux qui veulent utiliser TPU] J'ai essayé d'utiliser l'API de détection d'objets Tensorflow 2
Je ne tweet pas, mais je souhaite utiliser tweepy: affichez simplement les résultats de la recherche sur la console
J'ai créé une fonction pour découper l'image de python openCV, alors veuillez l'utiliser.
L'ordre des likes (LGTM) a disparu de Ma page, utilisez donc l'API Qiita pour l'obtenir.
J'ai essayé de créer l'API Quip
J'ai essayé le roman Naro API 2
[API Qiita] [Statistiques • Apprentissage automatique] J'ai essayé de résumer et d'analyser les articles publiés jusqu'à présent.
J'ai touché l'API de Tesla
[Python] Le statut de chaque préfecture du nouveau virus corona n'est publié qu'en PDF, mais j'ai essayé de le gratter sans le télécharger.
J'ai essayé l'API du roman Naruro
Pour fêter la sortie de Django 3.0, j'ai essayé ASGI, le successeur spirituel de WSGI, mais le socket Web n'a pas fonctionné.
Je ne suis pas sûr de la différence entre les modules, les packages et les bibliothèques, alors j'ai essayé de les organiser.
[Python] J'ai essayé d'obtenir diverses informations en utilisant l'API de données YouTube!
[Shell script] C'est ennuyeux d'envoyer le même contenu chaque semaine, alors j'ai essayé de l'automatiser! !! !!
J'ai essayé de déplacer le ballon
J'ai essayé d'utiliser l'API checkio
J'ai essayé d'estimer la section.
De l'introduction de l'API GoogleCloudPlatform Natural Language à son utilisation
Je veux le faire avec Python lambda Django, mais je vais m'arrêter
Lorsque j'ai essayé d'exécuter Python, j'ai été ignoré dans le Microsoft Store
Je ne veux pas l'admettre ... Représentation dynamique du système de Neural Network
J'ai essayé d'obtenir le code d'authentification de l'API Qiita avec Python.
Touches de karaoké assorties ~ J'ai essayé de le mettre sur Laravel ~ <en route>
J'ai essayé de résumer diverses phrases à l'aide de l'API de synthèse automatique "summpy"
J'ai essayé d'installer Docker sur Windows10 Home mais cela n'a pas fonctionné
J'ai essayé d'obtenir les informations sur le film de l'API TMDb avec Python
J'ai essayé de savoir ce que je pouvais faire car le tranchage est pratique
J'ai essayé de résumer la commande umask
J'ai essayé de reconnaître le mot de réveil
J'ai essayé d'utiliser l'API de données YOUTUBE V3
J'ai essayé d'utiliser l'apprentissage en profondeur pour extraire la partie où la plante est montrée de la photo de la véranda, mais cela n'a pas fonctionné, je vais donc résumer le contenu des essais et erreurs. Partie 2
J'ai essayé de résumer la modélisation graphique.
J'ai essayé d'estimer le rapport de circonférence π de manière probabiliste
J'ai créé une API Web
J'ai essayé d'utiliser l'API BigQuery Storage
Je n'ai pas pu importer le module python avec VSCODE, mais je pouvais le faire sur jupyterlab, j'ai donc recherché la cause (2)
Dans IPython, quand j'ai essayé de voir la valeur, c'était un générateur, donc je l'ai inventé quand j'étais frustré.
Je pensais qu'il serait lent d'utiliser l'instruction for dans NumPy, mais ce n'était pas le cas.
Je voulais connaître le nombre de lignes dans plusieurs fichiers et j'ai essayé de l'obtenir avec une commande
Le fichier édité avec vim était en lecture seule, mais je veux le sauvegarder
python Je ne sais pas comment obtenir le nom de l'imprimante que j'utilise habituellement.
Lorsque j'ai essayé de changer le mot de passe root avec ansible, je ne pouvais pas y accéder.