教程:获取网页中的视频下载地址(利用抓包)
优采云 发布时间: 2022-09-24 13:09教程:获取网页中的视频下载地址(利用抓包)
根据上篇文章中文章的思路,我通过监控网卡流量来改进我的程序。速度大大提高。
思考
下图是我用wireshark做的一个实验。在请求路径中保留.mp4和.flv的请求,您将获得请求的视频资源。
在wireshark的实验下,确定抓包的方法可行,开始用python写抓包代码。
我使用python的pcap和dpkt包来分析网卡流量。首先是使用pcap监控我的网卡,设置pcap过滤器,只处理HTTP请求,因为视频的地址在HTTP请求中。我在http请求的地址中找到了收录.flv的请求,可以得到视频的url地址。
实验
代码比较短,我直接贴代码。 pcap和dpkt的使用我参考了这个文章,但是这个文章也应该是抄别人的。一开始找了一个比较好的,最后找不到比较好的写了文章,只能发这个不太好的。
当然代码也会放在我的Github上,哈哈~
#encoding: utf8
import pcap
import dpkt
<p>
pc=pcap.pcap('eth1') #注,参数可为网卡名,如eth0
#设置*敏*感*词*过滤器 HTTP请求的TCP头为GET 或者 HTTP
pc.setfilter('tcp[20:2]=0x4745 or tcp[20:2]=0x4854')
print "starting capture"
for ptime,pdata in pc: #ptime为收到时间,pdata为收到数据
#对抓到的以太网V2数据包(raw packet)进行解包
p=dpkt.ethernet.Ethernet(pdata)
if p.data.__class__.__name__=='IP':
# ip='%d.%d.%d.%d'%tuple(map(ord,list(p.data.dst)))
if p.data.data.__class__.__name__=='TCP':
if p.data.data.dport==80:
header = p.data.data.data # by gashero
headerArr = header.split('\r\n')
url = headerArr[0].split(' ')[1]
host = headerArr[1].split(' ')[1]
requestUrl = host + url
if requestUrl.find('.flv') != -1:
# print headerArr
print requestUrl</p>
运行结果图:
未解决的问题 优酷分割视频网站,无法获取完整视频。
最新版本:ImageBox网页图片批量下载工具与完本小说下载助手下载评论软件详情对比
11、云中的图片永远不会丢失。
12、支持同步到手机。
13、支持群发到好友邮箱。
稳定正式版,2014-12-29 更新为v5.9.6 新增功能:任意QQ相册批量下载模块。
ImageBox Web 图片批量下载器 v8.0.5
1、首次支持批量下载超过20万张图片。
2、解码软件第一次批量抓取时立即显示的缩略图数量限制。
3、低配置机器可以实现高速批量下载。
4、添加了对 XP 操作系统的完美原生支持。
ImageBox网页图片批量下载器v7.8.8 for 32Bit更新内容:
在任务管理中增加了有效图片的统计。
增强了内置缩略图显示的功能和效果。
增加了导入EXCEL/TXT的抓取稳定性。
重大内核更新,截图更稳定。
为任务管理添加了流程优化。
添加了对加密图像集的抓取。
添加对 1688 电子商务架构网站 组的支持。
增强了抓斗面板的操作性能和人机交互设计。
增加阿里巴巴和京东店铺图片的抓取。
添加手动批量图像下载。
将随机导致软件崩溃的模块(微软的组件导致崩溃)移到软件外独立运行。
大大降低软件崩溃的可能性。
抓取后的弹出文件夹修改为直接弹出带有预浏览图片功能的文件夹。
加强下载数据的管理功能。
增加软件下载时图像二进制数据的合法性分析。
添加了用户最近的有效反馈并改进了建议的位置功能。
为批量下载添加了多任务系统。
此版本为重大更新,可管理任务。继续并组织。在测试中,爬取准确率和下载速度效率明显高于所有历史版本。