L'entrée est importante pour étudier l'analyse des données, mais la pratique est la meilleure, alors j'ai pensé qu'il y aurait de bonnes données à pratiquer. Pour être honnête, je ne peux pas juger si les données Youtube sont bonnes. Cependant, je regarde souvent Youtube, et comme c'est un domaine d'intérêt, je voudrais résumer comment l'utiliser dans le but de pouvoir extraire des données pour analyse en utilisant ** "Youtube Data API" **. J'ai utilisé la page suivante (référence API) pour apprendre l'API. https://developers.google.com/youtube/v3/docs?hl=ja
Cette fois, nous rechercherons des vidéos dans les conditions suivantes et afficherons les résultats dans un fichier csv.
De plus, la vidéo du résultat de la recherche est répartie en fréquence sur le canal auquel elle appartient et est sortie dans un fichier csv.
La source est la suivante. Pour la variable "DEVELOPER_KEY" dans le programme, entrez votre propre clé API. La méthode d'émission de la clé API est omise ici.
searchKeyword.py
# import library
from apiclient.discovery import build
from apiclient.errors import HttpError
import argparse
import numpy as np
import pandas as pd
# Set Yotube Data API key
DEVELOPER_KEY = "YOUR API KEY!!!"
YOUTUBE_API_SERVICE_NAME = "youtube"
YOUTUBE_API_VERSION = "v3"
def searchKeyword(options):
#Processus de recherche par mot-clé
youtube = build(YOUTUBE_API_SERVICE_NAME, YOUTUBE_API_VERSION,
developerKey=DEVELOPER_KEY)
searchResults = youtube.search().list(q=options.sw,
type="video",
part="id,snippet",
maxResults=options.max_results,
order="viewCount"
).execute()
#Traitement de la classification des résultats de recherche
videos = []
others = []
for searchResult in searchResults["items"]:
if (searchResult["id"]["kind"] == "youtube#video"):
videos.append(searchResult)
else :
others.append(searchResult)
#Vidéo, formatage des informations de canal, sortie de fichier csv
videoTitles = []
viewCounts = []
likeCounts = []
dislikeCounts = []
favoriteCounts = []
commentCounts =[]
videoChannelTitles = []
stat_list = [viewCounts, likeCounts, dislikeCounts, favoriteCounts, commentCounts]
stat_keywords = ['viewCount', 'likeCount', 'dislikeCount', 'favoriteCount', 'commentCount']
for video in videos:
videoDetail = youtube.videos().list( part="statistics, snippet",
id = video["id"]["videoId"]
).execute()
channelDetail = youtube.channels().list(part="snippet",
id=videoDetail["items"][0]["snippet"]["channelId"]
).execute()
videoTitles.append(videoDetail["items"][0]["snippet"]["title"])
for stat, stat_keyword in zip(stat_list, stat_keywords):
try:
stat.append(videoDetail["items"][0]["statistics"][stat_keyword])
except KeyError:
stat.append(0)
videoChannelTitles.append(channelDetail["items"][0]["snippet"]["title"])
df_videos = pd.DataFrame({"title":videoTitles, "ViewCount":viewCounts,
"channelTitle":videoChannelTitles,"likeCount":likeCounts,
"dislikeCount":dislikeCounts, "favoriteCount":favoriteCounts,
"commentCount":commentCounts})
df_videos.to_csv("Search_result_{}.csv".format(options.sw),encoding="utf-8_sig")
df_videos_countbyChannel = df_videos["channelTitle"].value_counts()
df_videos_countbyChannel.to_csv("ChannelTitle_{}.csv".format(options.sw),encoding="utf-8_sig")
return df_videos, df_videos_countbyChannel
if __name__ == "__main__":
# parse Argument
parser = argparse.ArgumentParser("search Youtube Program...")
parser.add_argument("sw", help="search Keyword in Youtube")
parser.add_argument("--max_results", type=int, help="max of search results",
default=50)
options = parser.parse_args()
searchKeywordResults = searchKeyword(options)
Je l'ai en fait déplacé. Cette fois, spécifiez «ordinateur quantique» comme mot-clé de recherche et exécutez.
$ python searchKeyword.py "Ordinateur quantique"
"Search_result_quantum computer.csv" et "ChannelTitle_quantum computer.csv" sont créés dans le répertoire où "searchKeyword.py" est placé. Vérifions le contenu de ces deux fichiers.
--Search_result_ Quantum computer.csv (seule la partie de début est décrite)
No | title | ViewCount | channelTitle | likeCount | dislikeCount | favoriteCount | commentCount |
---|---|---|---|---|---|---|---|
0 | Quantum Computers Explained – Limits of Human Technology | 12915763 | Kurzgesagt – In a Nutshell | 310808 | 3405 | 0 | 16871 |
1 | [Minecraft]Ordinateur pseudo-bit quantique[Le plus rapide du monde en théorie?] | 4483432 | Miki Tanabe | 60153 | 2057 | 0 | 9898 |
2 | Quelle est la différence entre un ordinateur quantique et un ordinateur normal? [Information scientifique japonaise] [Science et technologie] | 622469 | Informations scientifiques japonaises | 8019 | 435 | 0 | 647 |
3 | Qu'est-ce qu'un "ordinateur quantique" qui change le monde? Horiemon explique![Collaboration NewsPicks] | 232913 | Takafumi Horie Horiemon | 1443 | 121 | 0 | 275 |
4 | Ce monde est une simulation⁉ Si l'ordinateur quantique est terminé...【légende urbaine】 | 211623 | Je veux boire du thé au lait | 2722 | 142 | 0 | 411 |
5 | [Incroyable] Impact de l'ordinateur quantique "Incompréhension inimaginable" | 144126 | Système Ichizero | 1898 | 121 | 0 | 199 |
6 | Surpasse de loin Spacon! Annonce de l'ordinateur quantique domestique(17/11/20) | 121514 | ANNnewsCH | 1085 | 47 | 0 | 0 |
7 | [Mécanique quantique] Apprenez "l'ordinateur quantique" et "l'expérience de Stern Gerlach" | 117389 | Université d'Ikehaya | 1311 | 214 | 0 | 95 |
8 | [Challenge] «Ordinateur quantique» compréhensible en 10 minutes | 110234 | Industrie NEX | 1579 | 178 | 0 | 187 |
9 | [Ordinateur quantique] Partie 1 "Superposition de bits quantiques" (10 minutes) | 105738 | Pièce quantique | 0 | 0 | 0 | 58 |
10 | Bitcoin s'effondrera-t-il?⁉ Que fera Google du développement informatique quantique? Explication de la sécurité de la blockchain, etc. | 99405 | Immobilier Mofumofu | 1675 | 121 | 0 | 192 |
Il semble que j'ai pu bien obtenir les informations vidéo.
--ChannelTitle_Quantum Computer.csv (seule la partie de début est répertoriée)
Nom du canal | Count |
---|---|
Pièce quantique | 7 |
Université Keio Université Keio | 5 |
DENSO Official Channel | 2 |
Shino TV | 2 |
Appuyez sur SAMURAI | 2 |
Immobilier Mofumofu | 2 |
jstsciencechannel | 1 |
EE Times Japan | 1 |
Je veux boire du thé au lait | 1 |
Le bon côté | Bright Side Japan |
Il semble que j'ai pu bien obtenir les informations ici.
Si vous appliquez cela, vous pouvez faire diverses choses intéressantes. Je vais étendre les fonctions petit à petit pour pouvoir en faire un peu plus.
Recommended Posts