Python使用pypcap扩展包,抓取视频网站的视频URL
爬取视频网站的视频URL
- 前言
- 第一步、安装Python(2.7.13 64位)
- 第二步、安装Python的扩展包pypcapy==1.1.2
- 第三步、安装Python的扩展包dpkt(这个没什么特别的,直接装就可以。)
- 第四步、运行以下代码,并打开浏览器观看视频。
- 第五步、打开浏览器开发者network,可观察到我们的程序已经抓取到视频的url
前言
最近工作需要爬取视频URL,本人在网上找了很多资料,最终绕了很大一个弯子才搞定,写此博客供自己以后查看,或提供给有此需求的程序员来参考。我们平常在网页上看电影的时候,我们的浏览器会每过一小会加载一小段视频,这样连续起来我们就可以看到一个完整的视频。言外之意就是视频网站都会将视频分割之后再传送给客户端,所以我们通过在网卡上抓包的方法就能抓取到向视频网站发送的HTTP请求包,从数据包提取向视频网站发送的url,最后我们把每一小片段的视频url拼起来,我们就可以得到完整的视频。
第一步、安装Python(2.7.13 64位)
python的下载地址:https://www.python.org/downloads/windows/
python安装步骤我就不说了,是个人应该都会。
第二步、安装Python的扩展包pypcapy==1.1.2
这里本人已经试过了,最新的版本是有问题的,最好使用旧一点的版本。
- pip install pypcap==1.1.2 安装时会出现以下问题,会提示没有安装vc++ 9.0。
- 微软给python2提供了vc++库,但是没有提供python3的,这也是为什么我们选择python2的原因,下载VCForPython27.msi
下载链接:https://www.microsoft.com/en-us/download/details.aspx?id=44266
下载完成后直接点击下一步安装就可以了。
- VC++安装完成之后,pip install pypcap==1.1.2,这时我们会遇到一个新的错误,说找不到pcap.h,这时我们需要下载winpcap的开发包。
Winpcap开发者版本下载地址:http://www.winpcap.org/devel.htm
- winpcap下载完之后,接下来的两步很关键,一定仔细阅读(前两步是安装python另一个扩展包pcapy必须的过程,安装pypcap前两步可省略)。
- 解压winpcap的开发包,把include和lib目录里面的文件放到VC的同名目录里面(我的 VCForPython27默认安装目录C:\Users\Administrator\AppData\Local\Programs\Common\Microsoft\Visual C++ for Python\9.0\VC)
- 注意事项:如果是用的64位的python,还得把winpcap开发包中Lib目录中的x64目录里面的两个lib文件放到vc的lib目录中的amd64目录中。(将WpdPcak>Lib>x64目录中的Packet.lib与wpcap.lib文件拷贝到C:\Users\Administrator\AppData\Local\Programs\Common\Microsoft\Visual C++ for Python\9.0\VC\lib\amd64目录中)
- 找到python的安装目录然后将include放到python的include目录,然后将Lib放到python的lib目录
- 接下来继续安装显示安装成功!如果你是下载的压缩包 python setup.py install 安装的方式,在安装成功之后,找到这个包的路径,将pypcap的包的位置添加到环境变量中。
- 安装成功之后呢,我们进入python模式试一下吧。本以为大功告成,结果还是有错误,显示找不到DLL,这时我们需要安装WinPcap,我们刚才使用了WinPcap开发包,还没有安装WinPcap工具。
WinPcap下载地址:https://www.winpcap.org/install/
- 安装WinPcap之后,终于结束!在此辛苦,本人因在网上找不到全的资料,百度出来的都是一些乱七八遭的,装这个装到晚上2点才睡觉。。。
第三步、安装Python的扩展包dpkt(这个没什么特别的,直接装就可以。)
第四步、运行以下代码,并打开浏览器观看视频。
- 以下代码作者已试验过,只能抓取http请求,我们打开美剧鸟观看视频,美剧鸟网站都是http请求。
#encoding: utf8
import pcap
import dpkt
import repc=pcap.pcap() #注,参数可为网卡名,如eth0, 设置监听过滤器 HTTP请求的TCP头为GET 或者 HTTP, pc.setfilter('tcp[20:2]=0x4745 or tcp[20:2]=0x4854')
pc.setfilter('tcp port 80') print u"程序开始运行"while True:for ptime,pdata in pc: #ptime为收到时间,pdata为收到数据try:p=dpkt.ethernet.Ethernet(pdata) #对抓到的以太网V2数据包(raw packet)进行解包except Exception, e:continueif p.data.__class__.__name__=='IP':if p.data.data.__class__.__name__=='TCP': # if p.data.data.dport==80:header = p.data.data.data # 抓到的请求头, 默认按照抓到正常的请求头来解析,如果解析报错则舍弃,继续抓包try:headerArr = header.split('\r\n')url = headerArr[0].split(' ')[1]host = headerArr[1].split(' ')[1]requestUrl = host + urldomain_regex = r'^([a-zA-Z0-9]([a-zA-Z0-9-_]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,11}[/].*'result = re.search(domain_regex, requestUrl)if result:print requestUrl# print requestUrlexcept Exception, e:continue
第五步、打开浏览器开发者network,可观察到我们的程序已经抓取到视频的url
Python使用pypcap扩展包,抓取视频网站的视频URL相关推荐
- 用php实现抓取电影网站的视频下载地址
用php写了一个爬虫在视频网站上进行视频下载地址的抓取,半个多小时,大约抓取了3万多条ftp地址数据,效果还是可以的.这里总结一下抓取过程中遇到的问题 1:通过访问浏览器来执行php脚本这种访问方式其 ...
- 用php实现一个简单的爬虫,抓取电影网站的视频下载地址
昨天没什么事,先看一下电影,就用php写了一个爬虫在视频网站上进行视频下载地址的抓取,这里总结一下抓取过程中遇到的问题 1:通过访问浏览器来执行php脚本这种访问方式其实并不适合用来爬网页,因为要受到 ...
- python判断成语_python正则表达式抓取成语网站
#anthor jiqunpeng #time 20121124 import urllib import re def gethtml(url): #从url中读取html内容 page = url ...
- 梦幻西游python验证成语_python正则表达式抓取成语网站
#anthor jiqunpeng #time 20121124 import urllib import re def getHtml(url): #从URL中读取html内容 page = url ...
- Go爬虫colly官方示例二十一【shopify_sitemap】- 使用XPath请求抓取shopify网站地图里url
文章目录 示例介绍 示例代码 名词解释 Sitemap 简介 XPath 输出 转载请标明出处: http://blog.csdn.net/qq_27818541/article/details/11 ...
- 资深程序员教你,用python入门的知识抓取抖音短视频,太厉害了
抖音短视频可以说是当下最流行的自媒体平台,而python编程同样也是目前最流行的编程语言. 今天,就让一位大厂的资深程序员,用最简单的方式,使用python抓取抖音短视频. 到时候我会把所有的源代码都 ...
- [Python爬虫] 四、数据抓取之HTTP/HTTPS抓包工具Fiddler
往期内容提要: [Python爬虫] 一.爬虫原理之HTTP和HTTPS的请求与响应 [Python爬虫] 二.爬虫原理之定义.分类.流程与编码格式 [Python爬虫] 三.数据抓取之Request ...
- 用python爬虫下载视频_使用Python编写简单网络爬虫抓取视频下载资源
我第一次接触爬虫这东西是在今年的5月份,当时写了一个博客搜索引擎,所用到的爬虫也挺智能的,起码比电影来了这个站用到的爬虫水平高多了! 回到用Python写爬虫的话题. Python一直是我主要使用的脚 ...
- Python爬虫 | 斗图网表情包抓取
Python爬虫 | 斗图网表情包抓取 1.数据来源分析 2.制作div_list 3.发起请求 4.保存图片 5.批量获取 6.完整代码 声明 1.数据来源分析 打开斗图吧的主页,发现网址非常有 ...
最新文章
- VMWARE虚拟机安装系统提示CPU已被客户机操作系统禁用和secureCUT乱码
- 彻底理解Toast原理和解决小米MIUI系统上没法弹Toast的问题
- 网站应分析哪些方面来提升网站优化的效果呢?
- 【算法】 - 滑动窗口
- python几何拼贴画_图形几何图形拼贴画
- linux系统最大打开文件数(/etc/security/limits.conf:待更新其他设置)
- Z-Stack Home Developer's Guide—6. Clusters, Commands and Attributes中文翻译【Z-Stack Home 1.2.0的开发文档】
- 信息学奥赛一本通 1203:扩号匹配问题 | OpenJudge 2.2 2705:扩号匹配问题
- FG60B SSL ××× V3.0配置
- C语言实验报告册-20163a,c语言实验报告册-20163a.doc
- Windows8-ConsumerPreview 虚拟机安装与体验
- Halcon软件和license下载
- 用md5值识别相似图片 python
- threejs的shader材质 颜色混合函数mix
- jpg如何缩小kb?jpg图片压缩怎么弄?
- STM32CubeIDE 遇到的问题
- Android UI 字体库(.ttf文件)的使用 -- xml方式
- 计算机玩游戏 突然黑屏 又亮了,显示器黑一下又亮了怎么回事?解决显示器黑屏一会又亮一会又黑...
- python股票量化分析_python实战之股票交易量化分析
- jda 沃尔玛_如何通过沃尔玛应用程序的“储蓄守望者”省钱