


Introduction détaillée à l'exploration vidéo du robot d'exploration Python
Cet article vous apporte une introduction détaillée aux vidéos d'exploration des robots Python. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer. J'espère qu'il vous sera utile.
J'écris actuellement une application qui doit collecter des vidéos populaires sur Weibo. Ces courtes vidéos proviennent généralement de Miaopai, Weipai, Meipai et Sina Video, et il n'y a pas d'option de téléchargement, je ne peux donc utiliser que votre. cerveau pour réfléchir à une solution.
La première étape
Analysez le code source de la page Web. Par exemple : http://video.weibo.com/show?fid=1034:0988e59a12e5178acb7f23adc3fe5e97, faites un clic droit pour afficher le code source. Généralement, les vidéos ont le suffixe mp4. Si vous recherchez, vous ne le trouverez pas, mais certaines. peuvent être directement visualisés, comme les vidéos Meipai.
La deuxième étape
Capturez le paquet, analysez la demande et retournez. Cela peut également être réalisé via le puissant chrome, ou l'exemple ci-dessus, cliquez avec le bouton droit-> Inspecter l'élément-> NetWork, puis actualisez la page Web avec F5
J'ai constaté qu'il existe de nombreux demandes, une seule après analyse, en fait, les formats vidéo sont mp4, flv et avi. Vous pouvez le voir immédiatement, copiez-le dans le navigateur et ouvrez-le.
La troisième étape
Analysez les modèles de liens de téléchargement et de liens vidéo. C'est-à-dire la relation entre http://video.weibo.com/show?fid=1034:0988e59a12e5178acb7f23adc3fe5e97 et xxx.mp4. Cela nécessite encore une fois d'analyser le code source de la page Web. En fait, vous pouvez faire attention au lien avec le suffixe .m3u8 ci-dessus. M3u8 enregistre un fichier d'index en texte brut. Lorsque vous l'ouvrez, le logiciel de lecture ne le lit pas, mais le trouve. l'audio et la vidéo correspondants en fonction de son index. Utilisez l'adresse réseau du fichier pour le lire en ligne, ouvrez-le et voyez que le lien de téléchargement souhaité y est bien enregistré. De plus, le lien avec le suffixe .m3u8 se trouve dans le code source de la page web.
Résumé
Après l'analyse des trois premières étapes, l'idée pour obtenir le lien de téléchargement de la vidéo est d'obtenir d'abord le lien du suffixe .m3u8 depuis le code source de la page Web, téléchargez le fichier et obtenez le lien de téléchargement de la vidéo à l'intérieur, et enfin téléchargez la vidéo
Code source
#sinavideo.py #coding=utf-8 import os import re import urllib2 import urllib from common import Common class SinaVideo(): URL_PIRFIX = "http://us.sinaimg.cn/" def getM3u8(self,html): reg = re.compile(r'list=([\s\S]*?)&fid') result = reg.findall(html) return result[0] def getName(self,url): return url.split('=')[1] def getSinavideoUrl(self,filepath): f = open(filepath,'r') lines = f.readlines() f.close() for line in lines: if line[0] !='#': return line def download(self,url,filepath): #获取名称 name = self.getName(url) html = Common.getHtml(url) m3u8 = self.getM3u8(html) Common.download(urllib.unquote(m3u8),filepath,name + '.m3u8') url = self.URL_PIRFIX + self.getSinavideoUrl(filepath+name+'.m3u8') Common.download(url,filepath,name+'.mp4')
#common.py #coding=utf-8 import urllib2 import os import re class Common(): # 获取网页源码 @staticmethod def getHtml(url): html = urllib2.urlopen(url).read() print "[+]获取网页源码:"+url return html # 下载文件 @staticmethod def download(url,filepath,filename): headers = { 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'Accept-Charset': 'UTF-8,*;q=0.5', 'Accept-Encoding': 'gzip,deflate,sdch', 'Accept-Language': 'en-US,en;q=0.8', 'User-Agent': 'Mozilla/5.0 (Linux; Android 4.4.2; Nexus 4 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.114 Mobile Safari/537.36' } request = urllib2.Request(url,headers = headers); response = urllib2.urlopen(request) path = filepath + filename with open(path,'wb') as output: while True: buffer = response.read(1024*256); if not buffer: break # received += len(buffer) output.write(buffer) print "[+]下载文件成功:"+path @staticmethod def isExist(filepath): return os.path.exists(filepath) @staticmethod def createDir(filepath): os.makedirs(filepath,0777)
Méthode d'appel :
url = "http://video.weibo.com/show?fid=1034:0988e59a12e5178acb7f23adc3fe5e97"sinavideo = SinaVideo() sinavideo.download(url,""/Users/cheng/Documents/PyScript/res/"")
Résultat
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!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Solution aux problèmes d'autorisation Lors de la visualisation de la version Python dans Linux Terminal Lorsque vous essayez d'afficher la version Python dans Linux Terminal, entrez Python ...

Comment enseigner les bases de la programmation novice en informatique dans les 10 heures? Si vous n'avez que 10 heures pour enseigner à l'informatique novice des connaissances en programmation, que choisissez-vous d'enseigner ...

Comment éviter d'être détecté lors de l'utilisation de FiddlereVerywhere pour les lectures d'homme dans le milieu lorsque vous utilisez FiddlereVerywhere ...

Lorsque vous utilisez la bibliothèque Pandas de Python, comment copier des colonnes entières entre deux frames de données avec différentes structures est un problème courant. Supposons que nous ayons deux dats ...

Comment Uvicorn écoute-t-il en permanence les demandes HTTP? Uvicorn est un serveur Web léger basé sur ASGI. L'une de ses fonctions principales est d'écouter les demandes HTTP et de procéder ...

Dans Python, comment créer dynamiquement un objet via une chaîne et appeler ses méthodes? Il s'agit d'une exigence de programmation courante, surtout si elle doit être configurée ou exécutée ...

Utilisation de Python dans Linux Terminal ...

Fastapi ...
