Téléchargeur vidéo de la station B (numéro BV, tiret, séparation audio et vidéo)

Pourquoi devrais-je écrire un robot d'exploration vidéo à la station B

Au cours des derniers jours, j'ai été accro à certains clips de la station B.Dans le cycle de lavage de cerveau, comme le "White Snake: The Origin" du monde de haut en bas, la version complète de la chanson de fin "Previous Life and Modern Life" 4 minutes et 06 secondes.

https://www.bilibili.com/video/BV1Qb411q7Xu

Insérez la description de l'image ici

Face à une telle vidéo qui m'a conquis, la nécessité de la télécharger dans ma localité est soudainement apparue dans mon esprit. C'était pratique pour la lecture hors ligne, et elle pouvait être recréée (bien sûr, la source sera notée ~), alors je suis allé en ligne. Retrouvez le robot de téléchargement de vidéos de la station B.

À propos des éléments derrière le robot d'exploration de la station B

Je ne sais pas, j’ai trouvé beaucoup de plug-ins ou de bibliothèques qui peuvent télécharger des vidéos depuis la station B, you-get (https://github.com/soimort/you-get/releases/tag/v0.4.486) et IDM (plus d’un Outil de téléchargement de threads, avec la version exe et le plug-in de navigateur, vous pouvez renifler et télécharger des fichiers multimédias sur le Web, y compris des images, audio, vidéo), je l'ai essayé, mais il est doux, trop de trous, abandonnez ou écrivez vous-même Droite ~

Étonnamment, j'ai en fait trouvé un robot d'exploration de vidéos sur le site B que j'ai écrit plus tôt (https://blog.csdn.net/ygdxt/article/details/84501500), je l'ai essayé avec extase et j'ai constaté qu'il n'était pas Maintenant, en regardant les données, un code a été analysé par json, et je peux exécuter à nouveau:

def parseHtml(self,html):
#用pq解析得到视频标题
doc = pq(html)
video_title = doc('#viewbox_report > h1 > span').text()

#用正则、json得到视频url;用pq失败后的无奈之举
pattern = r'\<script\>window\.__playinfo__=(.*?)\</script\>'
result = re.findall(pattern, html)[0]
temp = json.loads(result)
# 改了此处,原来是 temp['durl']
for item in temp['data']['durl']:
    if 'url' in item.keys():
        video_url = item['url']
		return{
			'title': video_title,
			'url': video_url
		}

Il y a beaucoup de bonnes choses, certaines vidéos peuvent être téléchargées correctement, et certains téléchargements sont de 0 Ko, je pense que les choses ne sont certainement pas aussi simples. Un examen plus approfondi des informations montre que les formats vidéo utilisés par la station B avant 2018 sont tous flv, et plus tard la mise à niveau technique a été convertie en tiret (voir l'avis de la station b: https://www.bilibili.com/read/cv855111), et I Les robots précédents étaient uniquement pour flv, donc seules certaines vidéos pouvaient être téléchargées.

Non seulement cela, les vidéos suivantes sont séparées du son et des images. Pour télécharger une vidéo complète, nous devons télécharger la vidéo et l'audio séparément. L'adresse de la vidéo et de l'audio est similaire à mon code précédent, mais il convient de noter que le téléchargement de l'audio et de la vidéo doit être Envoyez d'abord une demande d'OPTIONS à la station b, nous utilisons généralement GET / POST, ces OPTIONS peuvent être moins utilisées, mais l'utilisation dans la bibliothèque de demandes n'est pas très différente, puis la synthèse, la bibliothèque principale de l'audio et de la vidéo synthétique est préférée ffmpeg, eh bien, à peu près Un itinéraire technique.

Pour insérer une phrase, le mois dernier (2020/3/23), la station B a mis à jour le numéro de la vidéo av au numéro BV

Tout au long, le numéro AV est un signe important du manuscrit vidéo de la station B, qui a joué un rôle clé dans la diffusion et le partage de la vidéo.

Afin de protéger la sécurité des informations manuscrites, d'accueillir davantage de soumissions et de protéger les droits et intérêts du maître UP, à partir du 23 mars 2020, le numéro AV sera entièrement mis à niveau vers le numéro BV. Contrairement au numéro AV numérique pur, le numéro BV est une chaîne de chiffres et de lettres majuscules et minuscules, qui est automatiquement générée par un algorithme. À l'avenir, le numéro BV sera utilisé uniformément comme identification du manuscrit.

Dans le même temps, les fonctions connexes de génération de numéros AV avant le 23 mars 2020 restent inchangées. Par exemple, des liens vers des manuscrits partagés, la recherche de numéros AV et la mise en évidence des sauts dans les mises à jour, les commentaires et les messages privés.

De plus, après avoir copié le numéro BV ou le lien contenant le numéro BV, l'utilisateur passera automatiquement à la vidéo lors de l'ouverture de l'application de la station B.

En bref, la vidéo avant le 23 mars 2020 est déterminée par av, et peut également être déterminée par le numéro BV, mais la vidéo après le 23 mars 2020 n'est que l'indice BV.

Nous avons donc simplement rampé directement en fonction du numéro BV. La grande majorité des robots d'exploration vidéo b-site sur Internet sont dirigés vers le numéro av.
En ce qui concerne la façon dont j'ai écrit les idées dans le code et les fosses rencontrées, je peux omettre le mot 1 w ici ...
ou simplement regarder comment obtenir l'outil et l'utiliser ~

Comment utiliser

Veuillez profiter de la vidéo de démonstration ci-dessous en un coup d'œil

Cliquez-moi, la vidéo est à la fin de ce lien

Les préoccupations du public n ° long mois petite eau réponses de fond, Vive , vous pouvez obtenir l' outil de téléchargement

Pour faciliter l'utilisation, l'environnement ffmpeg est intégré à l'outil de téléchargement sans avoir à reconfigurer l'environnement ffmpeg ou l'environnement Python.

A publié 85 articles originaux · J'aime 283 · Plus de 160 000 visites

Je suppose que tu aimes

Origine blog.csdn.net/ygdxt/article/details/105485580
conseillé
Classement