Maison  >  Article  >  développement back-end  >  Utiliser Python pour implémenter le code d'exemple de la fonction de téléchargement vidéo

Utiliser Python pour implémenter le code d'exemple de la fonction de téléchargement vidéo

高洛峰
高洛峰original
2017-03-16 09:34:562605parcourir

Le secteur des vidéos courtes est en plein essor depuis un an ou deux, et chaque site Web de vidéos possède son propre contenu vidéo court unique. Ce serait formidable s'il existait un programme capable de télécharger les dernières vidéos publiées par les utilisateurs populaires des principaux sites Web de vidéos. Non seulement ce serait pratique à regarder, mais vous pourriez également publier des vidéos libres de droits sur des sites de réseaux sociaux personnels pour augmenter votre visibilité. popularité

Le secteur des vidéos courtes est en plein essor depuis un an ou deux, et chaque site Web de vidéos possède son propre contenu vidéo court unique. Ne serait-il pas bien s'il existait un tel programme capable de télécharger les dernières vidéos publiées par les utilisateurs populaires des principaux sites Web de vidéos ? Non seulement il serait pratique pour vous de les regarder, mais vous pourriez également publier des vidéos libres de droits sur vos réseaux sociaux personnels ? des sites de réseautage pour augmenter votre popularité.

parker est un tel projet (adresse du projet : https://github.com/LiuRoy/parker). Il utilise le celeryframework pour explorer régulièrement les listes de vidéos des utilisateurs et compiler les dernières sorties. vidéos. Grâce au téléchargement asynchrone, le déploiement distribué peut être facilement réalisé. Étant donné que la mise en page et l'interface de chaque site Web sont mises à jour fréquemment, afin de garantir la haute disponibilité du programme, une surveillance Statsd est spécialement ajoutée pour faciliter la détection rapide des erreurs.

CodeArchitecture

Utiliser Python pour implémenter le code dexemple de la fonction de téléchargement vidéo

Actuellement à Parker Seuls les téléchargements depuis Bilibili et Miaopai sont implémentés. Comme le montre le diagramme du cadre, deux interfaces asynchrones doivent être implémentées pour chaque type de site Web : analyser l'adresse de lecture de la vidéo publiée à partir de la page d'accueil vidéo de l'utilisateur et télécharger la vidéo en fonction. sur l’adresse de lecture. Par conséquent, lors de l'ajout d'un type de site Web, vous n'avez pas besoin de modifier le code d'origine, il vous suffit d'ajouter une nouvelle interface d'analyse et de téléchargement. Je n'ai pas encore mis en œuvre les opérations ultérieures une fois le téléchargement de la vidéo terminé. Vous pouvez l'implémenter librement selon vos propres besoins.

Lors de son exécution, le céleri enverra régulièrement la liste d'utilisateurs configurée de haute qualité à l'interface d'analyse du site Web correspondant pour une exécution asynchrone, filtrera la dernière adresse de lecture vidéo et la transmettra à l'interface de téléchargement correspondante pour téléchargement asynchrone. Une fois terminé, appelez les opérations suivantes de manière asynchrone. Par conséquent, il est nécessaire de démarrer un processus de battement de céleri pour envoyer des tâches planifiées et plusieurs tâches asynchrones de céleri pour effectuer des opérations d'analyse et de téléchargement. Pour les vidéos relativement volumineuses, le téléchargement prendra beaucoup de temps. Il est recommandé d'en allouer raisonnablement le nombre. tâches asynchrones en fonction de la taille de la liste des tâches.

Le programme s'exécute

Il a été vérifié que ce programme peut fonctionner normalement sous Ubuntu et Mac Car céleri sous Windows local. impossible. Il démarre normalement, il n'a donc pas été vérifié dans l'environnement Windows.

Bibliothèque dépendanteInstallation

La version python est 3.5. Après avoir entré le répertoire du projet, exécutez :

pip install -r exigences.txt

Créer une base de donnéesTable

Construisez-la dans le base de données à l'avance Deux tables (sql : https://github.com/LiuRoy/parker/blob/master/spider/models/tables.sql)

Configuration des paramètres

Logging.yaml, params.yaml et sites.yaml sous le chemin de configuration correspondent respectivement à la configuration du journal, à la configuration des paramètres en cours d'exécution et à la configuration utilisateur populaire.

Configuration du journal

En mode débogage, le journal sera affiché directement dans le flux de sortie standard. En mode release, le contenu du journal sera affiché. être généré dans un fichier. Par conséquent, le fichier journal de sortie doit être configuré.

Exécuter la configuration

  • mode débogageMode débogage, dans ce mode le journal pointe vers la sortie standard et il n'y a pas de données de surveillance ; en mode de publication, le journal est sorti dans le fichier spécifié et il y a des données de surveillance.

  • broker_url correspond au BROKER_URL de céleri, qui peut être configuré comme redis ou lapinmq

  • mysql Adresse de la base de données _url, deux tables doivent être construites à l'avance

  • download_path chemin de téléchargement de la vidéo

  • adresse de surveillance statsd_address

  • video_number_per_page Combien d'adresses de lecture vidéo sont analysées à partir de la page d'accueil vidéo de l'utilisateur à chaque fois ? Étant donné que la plupart des utilisateurs publient un petit nombre de vidéos à chaque fois, il suffit de définir cette valeur sur une très petite valeur. Lors de la première diffusion, un grand nombre de vidéos de longue date ne seront pas téléchargées.

  • délai d'expiration download_timeout pour le téléchargement de vidéos

Configuration utilisateur populaire

Parker générera une liste de planificateurs de battements de céleri basée sur cette configuration.

  • la règle de nom est -, Parker l'utilisera comme nom de tâche du planificateur

  • utilisateur URL Le publication de la page d'accueil de la vidéo

  • la tâche correspond à la tâche asynchrone d'analyse du céleri

  • minute combien de minutes pour vérifier la liste des vidéos de l'utilisateur

Démarrer la tâche

Entrez dans le répertoire du projet et exécutez la commande suivante pour démarrer le travailleur de céleri


celery -A spider worker


Exécutez la commande suivante pour démarrer la tâche planifiée de battement de céleri


celery -A spider beat


Surveillance

Utilisez fortement une image docker pour configurer l'environnement de surveillance en une minute. Après cela, il vous suffit d'ajouter les données d'exécution réussie et d'exécution anormale, et vous pouvez facilement surveiller si le programme fonctionne normalement.

Utiliser Python pour implémenter le code dexemple de la fonction de téléchargement vidéo


Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn