Comment gratter des données Youtube avec Python
Publié: 2019-05-29YouTube est devenu le grand gagnant en matière de sites Web de partage de vidéos, et bien qu'il soit évalué à plus de 160 milliards de dollars, le nombre de personnes qui gagnent leur vie grâce au site Web est également énorme. Ces créateurs de contenu rejoignent le programme de partenariat YouTube et, en monétisant leur contenu, gagnent une tonne d'argent grâce aux publicités.
Pourquoi gratter les données de Youtube ?
Les données YouTube peuvent être utiles pour un large éventail de cas d'utilisation, tels que :
1. Trouvez les mots-clés les plus appréciés
Supposons que vous exécutiez une recherche pour trouver les meilleures vidéos affichées sur YouTube pour certains mots particuliers. Maintenant, si vous récupérez les goûts, les aversions, les vues et les titres de chacune de ces vidéos, vous pourrez créer une liste de mots-clés qui, une fois insérés dans vos titres YouTube, peuvent générer de meilleurs revenus.
2. Comparez les hashtags
En comparant les goûts et les vues sur les vidéos avec des hashtags particuliers, vous pouvez avoir une meilleure idée des hashtags à utiliser sur votre vidéo pour la rendre plus populaire, ou pour comprendre quels hashtags vont mieux avec le titre de votre vidéo.
3. Trouvez les chaînes les plus populaires
L'extraction des meilleures vidéos sur YouTube peut vous aider à créer un graphique de fréquence des noms de chaînes qui se produisent, vous permettant ainsi de trouver les meilleures chaînes que les gens apprécient. Cela, à son tour, vous aiderait également à comprendre quels sujets sont les plus populaires parmi les téléspectateurs de YouTube.
4. Suivre la popularité des chaînes
En extrayant les données des vidéos nouvellement téléchargées d'une chaîne YouTube spécifique, vous pourrez déterminer si la popularité d'une chaîne augmente ou diminue, ou stagne.
5. Enregistrer les goûts, les aversions et les vues sur les vidéos
Vous pouvez créer un graphique avec le temps sur l'axe des x et les goûts, les aversions ou les vues sur l'axe des y, en grattant les données de ces vidéos à intervalles réguliers.
Commençons avec le code :
Comme nous avions déjà expliqué le processus d'installation et d'initialisation dans les articles précédents "Comment récupérer des données" comme celui-ci , nous espérons que vous êtes prêt avec ces étapes terminées.
Pour exécuter le code, utilisez la commande python, puis entrez une URL de vidéo YouTube lorsque vous y êtes invité.

Copiez le code ci-dessous dans un fichier et nommez-le youtubeDataExtractor.py (bien que vous puissiez lui donner n'importe quel nom de fichier, tant qu'il se termine par '.py').
[langage de code = "python"]
#!/usr/bin/python
# -*- codage : utf-8 -*-
importer urllib.request
importer urllib.parse
import urllib.error
depuis bs4 importer BeautifulSoup
importer SSL
importer json
importer ast
importer json
importer le système d'exploitation
à partir de urllib.request demande d'importation, urlopen
# Pour ignorer les erreurs de certificat SSL
ctx = ssl.create_default_context()
ctx.check_hostname=Faux
ctx.verify_mode = ssl.CERT_NONE
# Entrée de l'utilisateur
url = input('Entrez l'URL de la vidéo Youtube- ')
# Faire croire au site Web que vous y accédez à l'aide d'un navigateur mozilla
req = Request(url, headers={'User-Agent': 'Mozilla/5.0'})
page Web = urlopen(req).read()
# Création d'un objet BeautifulSoup de la page html pour une extraction facile des données.
soupe = BeautifulSoup(page web, 'html.parser')
html = soup.prettify('utf-8')
détails_vidéo = {}
autres_détails = {}
pour span dans soup.findAll('span',attrs={'class': 'watch-title'}):
video_details['TITLE'] = span.text.strip()
pour le script dans soup.findAll('script',attrs={'type': 'application/ld+json'}):
channelDesctiption = json.loads(script.text.strip())
video_details['CHANNEL_NAME'] = channelDesctiption['itemListElement'][0]['item']['name']
pour div dans soup.findAll('div',attrs={'class': 'watch-view-count'}):
video_details['NUMBER_OF_VIEWS'] = div.text.strip()
pour le bouton dans soup.findAll('button',attrs={'title': 'J'aime ça'}):
video_details['LIKES'] = button.text.strip()
for button in soup.findAll('button',attrs={'title': 'Je n'aime pas ça'}):
video_details['DISLIKES'] = button.text.strip()
for span in soup.findAll('span',attrs={'class': 'yt-subscription-button-subscriber-count-branded-horizontal yt-subscriber-count'}):
video_details['NUMBER_OF_SUBSCRIPTIONS'] = span.text.strip()
hashtag = []
pour span dans soup.findAll('span',attrs={'class': 'standalone-collection-badge-renderer-text'}):
pour un dans span.findAll('a',attrs={'class': 'yt-uix-sessionlink'}):
hashtags.append(a.text.strip())
video_details['HASH_TAGS'] = hashtags
avec open('output_file.html', 'wb') comme fichier :
fichier.write(html)
avec open('data.json', 'w', encoding='utf8′) comme fichier de sortie :
json.dump(video_details,outfile,assure_ascii=False,indent=4)

print ('———-L'extraction des données est terminée. Vérifier le fichier json.———-')
[/code]
Une fois que vous avez exécuté le code, vous trouverez un JSON créé dans votre répertoire actuel, portant le nom data.json. Nous avons exécuté le code de certaines vidéos musicales populaires et voici les JSON qui leur sont associés-
1. Tonnerre par Imagine Dragons –
[langage de code = "python"]
{
"TITRE": "Imagine Dragons - Tonnerre",
"CHANNEL_NAME": "ImagineDragonsVEVO",
"NUMBER_OF_VIEWS": "1 182 556 781 vues",
"J'AIME": "6 693 559",
"N'AIME PAS": "337 823",
"NUMBER_OF_SUBSCRIPTIONS": "17M",
"HASH_TAGS": []
}
[/code]
2. Dans tes sentiments par Drake
[langage de code = "python"]
{
"TITLE": "Drake - In My Feelings (Paroles, Audio) "Kiki, tu m'aimes"",
"CHANNEL_NAME": "Unité spéciale",
"NUMBER_OF_VIEWS": "278 121 686 vues",
"J'AIME": "2 407 688",
"N'AIME PAS": "114 933",
"NUMBER_OF_SUBSCRIPTIONS": "614K",
"HASH_TAGS" : [
"#InMyFeelings",
"#Canard",
"#Scorpion"
]
}
[/code]
Le code du robot d'exploration YouTube expliqué :
Comme d'habitude, nous récupérons d'abord le code HTML de la page Web et l'enregistrons dans un fichier de notre répertoire local, afin que nous puissions l'analyser et trouver les points de données qui peuvent être extraits facilement et qui seraient également utiles. La majeure partie de l'étude des points de données dans la page HTML doit être effectuée manuellement, en recherchant des mots-clés ou des valeurs spécifiques et en trouvant où ils se trouvent.
Nous avons utilisé BeautifulSoup (BS4) pour extraire des données à partir d'endroits spécifiques dans le code HTML-
- L'élément de type span ayant la classe 'watch-title' est l'endroit où vous pouvez trouver le titre de la vidéo.
- L'élément de script dont le type est 'application/ld+json' contient le nom du canal.
- L'élément div avec la classe watch-view-count vous aiderait à obtenir le nombre de vues de cette vidéo YouTube particulière.
- L'élément de bouton avec le titre "J'aime ça" a le nombre de likes sur cette vidéo particulière.
- Semblable au point ci-dessus, l'élément de bouton avec le titre 'Je n'aime pas ça', a le nombre de n'aime pas sur une vidéo particulière.
- L'élément span avec la classe 'yt-subscription-button-subscriber-count-branded-horizontal yt-subscriber-count' est celui à partir duquel vous pouvez extraire le nombre d'abonnés à la chaîne qui a mis en ligne cette vidéo particulière.
- Trouver les hashtags associés à une vidéo donnée est légèrement plus compliqué que les autres points de données. Tout d'abord, vous devez extraire toutes les étendues avec la classe 'standalone-collection-badge-renderer-text', et à partir de là, il faut extraire toutes les balises a avec la classe 'yt-uix-sessionlink'. En extrayant le texte de tous les a-tags, dans un tableau, vous pourrez créer une liste de hashtags. Ce tableau peut être ajouté au résultat json sous une clé particulière appelée 'HASH_TAGS', afin d'obtenir les informations dans un format structuré dans le résultat final json.
Quels points de données pouvez-vous récupérer sur Youtube ?
En utilisant le code ci-dessus, vous pouvez récupérer certains points de données de n'importe quelle vidéo YouTube, tant que vous possédez leur URL. Seul le champ hashtags peut être absent dans certaines vidéos car ce n'est pas un champ obligatoire dans les pages vidéos YouTube. Les points de données pouvant être récupérés sont les suivants :
TITRE
Le point de données le plus important est celui que nous extrayons au tout début. Le titre de la vidéo contient beaucoup d'informations et est de la plus haute importance, sans quoi tous les autres points de données n'auraient aucun sens.
NOM DU CANAL
Juste après le titre, le nom de la chaîne est important pour associer le titre au créateur, c'est-à-dire qui a créé le contenu. Sur YouTube, les vidéos sont associées par leurs noms de chaînes et non par leurs créateurs car dans de nombreux cas, plusieurs personnes travaillent sur les vidéos d'une même chaîne.
NOMBRE DE VUES
La mesure la plus simple pour comprendre la portée d'une vidéo est de trouver le nombre de vues qu'elle a reçues. Il s'agit également de la mesure la plus importante associée à une vidéo YouTube et, à bien des égards, elle détermine les revenus que le créateur de la vidéo réalisera.
AIME
Les likes sur une vidéo YouTube, c'est simplement le pourcentage de téléspectateurs qui ont suffisamment aimé la vidéo pour cliquer sur le bouton pouce levé sous une vidéo.
N'AIME PAS
Semblable au point de données ci-dessus, le nombre d'aversions déterminerait le nombre de clics sur le bouton d'aversion pour une vidéo.
NOMBRE D'ABONNEMENTS
Alors que les goûts, les aversions et les vues donnent une image de la popularité d'une seule vidéo YouTube, le nombre d'abonnements donne une idée plus précise de la popularité de la chaîne YouTube. Pour les chaînes YouTube, nous n'avons pas d'autre statistique. Le nombre d'abonnements est le seul point de données unique et plus il est élevé, plus la chaîne YouTube en question est populaire.
HASHTAGS
Les hashtags sont devenus un moyen populaire de rendre votre contenu consultable sur différents supports. Qu'il s'agisse de publications Facebook ou d'images Instagram, les gens utilisent aujourd'hui des hashtags avec différents types de contenu en ligne afin que différents types de contenu puissent être associés. C'est la raison pour laquelle les « hashtags tendance » sont une chose aujourd'hui.
Conclusion
Alors que le code donné ne peut extraire que certains points de données spécifiques d'une page vidéo YouTube, l'exploration de pages HTML à partir de différentes pages YouTube peut vous aider à trouver plus de points de données qui se produisent sous des éléments HTML similaires. Le scraping Web n'a pas de règles strictes et rapides puisque les sites Web eux-mêmes changent constamment. Par conséquent, apprendre quelles données extraire et comment extraire est quelque chose qui ne peut être recueilli que par expérience en grattant différentes pages Web ayant différents formats de données.
Besoin d'aide pour extraire des données Web ?
Obtenez des données propres et prêtes à l'emploi à partir de sites Web pour des applications professionnelles grâce à nos services de grattage Web.
Oops! Nous ne pouvions pas trouver votre formulaire.
Avis de non-responsabilité : le code fourni dans ce didacticiel est uniquement à des fins d'apprentissage. Nous ne sommes pas responsables de la façon dont il est utilisé et n'assumons aucune responsabilité pour toute utilisation préjudiciable du code source.
