首页 后端开发 Python教程 python爬虫可以爬视频吗

python爬虫可以爬视频吗

Jun 19, 2019 am 10:16 AM
python 爬虫

网络爬虫又称网络蜘蛛,是指按照某种规则在网络上爬取所需内容的脚本程序。众所周知,每个网页通常包含其他网页的入口,网络爬虫则通过一个网址依次进入其他网址获取所需内容。

python爬虫可以爬视频吗

爬虫结构

爬虫调度程序(程序的入口,用于启动整个程序)

url管理器(用于管理未爬取得url及已经爬取过的url)

网页下载器(用于下载网页内容用于分析)

网页解析器(用于解析下载的网页,获取新的url和所需内容)

网页输出器(用于把获取到的内容以文件的形式输出)

第一步

分析网页源码。 例如:http://video.weibo.com/show?fid=1034:0988e59a12e5178acb7f23adc3fe5e97,右键查看源码,一般视频都是mp4后缀,搜索发现没有,但是有的直接就能看到了比如美拍的视频。

相关推荐:《python视频教程

第二步

抓包,分析请求和返回。这个也可以通过强大的chrome实现,还是上面的例子,右键->审查元素->NetWork,然后F5刷新网页 

发现有很多请求,只能一条一条的分析了,其实视频格式就是那几种mp4,flv,avi了,一下就能看到了,复制到浏览器中打开,果然就是我们想要的下载链接了。 

第三步

分析下载链接和视频链接的规律。即http://video.weibo.com/show?fid=1034:0988e59a12e5178acb7f23adc3fe5e97与xxx.mp4的关系。这个又需要分析网页源码了,其实可以注意上面那个以.m3u8后缀的链接,m3u8记录了一个索引纯文本文件,打开它时播放软件并不是播放它,而是根据它的索引找到对应的音视频文件的网络地址进行在线播放,打开看,里面确实记录着我们想要的下载链接。而且.m3u8后缀的链接就在网页源码中。 

总结

经过前三步的分析,获取视频下载链接的思路就是先从网页源码中获取.m3u8后缀的链接,下载该文件,从里面得到视频下载链接,最后下载视频就好了

源码

#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)
登录后复制

调用方式:

url = "http://video.weibo.com/show?fid=1034:0988e59a12e5178acb7f23adc3fe5e97"sinavideo = SinaVideo()        
sinavideo.download(url,""/Users/cheng/Documents/PyScript/res/"")
登录后复制

结果:

以上是python爬虫可以爬视频吗的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

Python vs.C:申请和用例 Python vs.C:申请和用例 Apr 12, 2025 am 12:01 AM

Python适合数据科学、Web开发和自动化任务,而C 适用于系统编程、游戏开发和嵌入式系统。 Python以简洁和强大的生态系统着称,C 则以高性能和底层控制能力闻名。

oracle数据库有哪些类型的文件组成 oracle数据库有哪些类型的文件组成 Apr 11, 2025 pm 03:03 PM

Oracle 数据库文件结构包括:数据文件:存储实际数据。控制文件:记录数据库结构信息。重做日志文件:记录事务操作,确保数据一致性。参数文件:包含数据库运行参数,可优化性能。归档日志文件:备份重做日志文件,用于灾难恢复。

oracle数据库怎么登陆 oracle数据库怎么登陆 Apr 11, 2025 pm 02:39 PM

Oracle 数据库登录不仅涉及用户名和密码,还包括连接字符串(包含服务器信息和凭证)以及身份验证方式。它支持 SQL*Plus 和编程语言连接器,并提供用户名密码、Kerberos 和 LDAP 等身份验证选项。常见错误包括连接字符串错误和无效的用户名/密码,而最佳实践侧重于连接池、参数化查询、索引和安全凭证处理。

如何利用Debian Apache日志提升网站性能 如何利用Debian Apache日志提升网站性能 Apr 12, 2025 pm 11:36 PM

本文将阐述如何通过分析Debian系统下的Apache日志来提升网站性能。一、日志分析基础Apache日志记录了所有HTTP请求的详细信息,包括IP地址、时间戳、请求URL、HTTP方法和响应代码等。在Debian系统中,这些日志通常位于/var/log/apache2/access.log和/var/log/apache2/error.log目录下。理解日志结构是有效分析的第一步。二、日志分析工具您可以使用多种工具分析Apache日志:命令行工具:grep、awk、sed等命令行工具可

Python:游戏,Guis等 Python:游戏,Guis等 Apr 13, 2025 am 12:14 AM

Python在游戏和GUI开发中表现出色。1)游戏开发使用Pygame,提供绘图、音频等功能,适合创建2D游戏。2)GUI开发可选择Tkinter或PyQt,Tkinter简单易用,PyQt功能丰富,适合专业开发。

oracle数据库在c盘安装了哪些东西 oracle数据库在c盘安装了哪些东西 Apr 11, 2025 pm 04:21 PM

Oracle数据库在C盘的藏身之处:注册表:使用注册表编辑器搜索"Oracle",可找到包括安装路径、服务名称等信息。文件系统:Oracle文件散布在C盘多个位置,包括主目录、系统文件、临时文件等。环境变量:Oracle设置的环境变量(如ORACLE_HOME、ORACLE_SID)指向安装目录和实例名称。谨慎操作:卸载Oracle时,不仅要删除文件,还需清理注册表和服务,建议使用官方卸载工具或寻求专业帮助。空间管理:优化磁盘空间,避免将Oracle安装在C盘;定期清理临时文

Laravel(PHP)与Python:开发环境和生态系统 Laravel(PHP)与Python:开发环境和生态系统 Apr 12, 2025 am 12:10 AM

Laravel和Python在开发环境和生态系统上的对比如下:1.Laravel的开发环境简单,仅需PHP和Composer,提供了丰富的扩展包如LaravelForge,但扩展包维护可能不及时。2.Python的开发环境也简单,仅需Python和pip,生态系统庞大,涵盖多个领域,但版本和依赖管理可能复杂。

PHP和Python:比较两种流行的编程语言 PHP和Python:比较两种流行的编程语言 Apr 14, 2025 am 12:13 AM

PHP和Python各有优势,选择依据项目需求。1.PHP适合web开发,尤其快速开发和维护网站。2.Python适用于数据科学、机器学习和人工智能,语法简洁,适合初学者。

See all articles