Python爬取FLASH播放器中的资料。

一、首先了解一下AMF协议:AMF(Action Message Format)是Flash与服务端通信的一种常见的二进制编码模式,其传输效率高,可以在HTTP层面上传输。现在很多Flash WebGame都采用这样的消息格式。

AMF协议是基于Http协议的.

它的内容处理过程大致是这样:

1.从客户端获取Http请求(Request)流.

2.对流进行解串行化(Deserialize),得到服务器端程序能够识别的数据,并建立一个响应(Response)消息

3.Debug开始

4.对流进行各种处理(记录、许可、服务)得到返回值

5.对响应流进行串行化

6.发送Http响应给客户端

二、Python与amf进行互通需要用到PyAMF

1、下载pyamf

https://pypi.python.org/pypi/PyAMF

2、安装pyamf

下载完成之后解压出来,打开DOS命令进入pyamf目录,

执行下列命令,安装pyamf框架

python setup.py install --disable-ext

三、获取关键字节伪造访问

首先使用charles抓包工具,抓取AMF包,得到请求/应答的AMF数据,对AMF格式的请求和响应的数据进行分析。

解密的POST DATA如下图所示:

构建flex.messaging.messages.RemotingMessage信息msg= messaging.RemotiongMessage(messageId=str(uuid.uuid1()).upper(),\

clometOd=None,\

operation='playeSource',\

destination='metaDataService',\

timeTolive=0,\

timestamp=0

)

msg.body=['xxx', 'aaaaa', 'ccccc','ddddd', '', 'eeeee', '']

msg.headers['DSEndpoint']='my-amf'msg.headers['DSId']=str(uuid.uuid1()).upper()

......

得到的Response如下图:

四、具体实现代码如下:import urllib2import uuidimport pyamffrom pyamf import remotingfrom pyamf.flex import messaging# 构造flex.messaging.messages.RemotingMessage消息msg= messaging.RemotiongMessage(messageId=str(uuid.uuid1()).upper(),\

clometOd=None,\

operation='playeSource',\

destination='metaDataService',\

timeTolive=0,\

timestamp=0

)

msg.body = ['xxx', 'aaaaa', 'ccccc','ddddd', '', 'eeeee', '']

msg.headers['DSEndpoint'] = 'my-amf'msg.headers['DSId'] = str(uuid.uuid1()).upper()# 按AMF协议编码req = remoting.Request('null', body=(msg,))

env = remoting.Envelope(amfVersion=pyamf.AMF3)

env.bodies = [('/1',req)]

data = bytes(remoting.encode(env).read())# 提交请求url = 'http://xxxx.xx.xx/amf'req = urllib2.Request(url,data,headers={'Content-Type':'application/x-amf'})# 解析返回数据oepner = urllib2.build_opener()# 解码AMF协议返回的数据resp = remoting.decode(opener.open(req).read())print resp.bodies[0][1].body.body['xxxx']

......

作者:迷途老鹰

链接:https://www.jianshu.com/p/0f3009021fd9

打开App,阅读手记

python操作网页flash视频_Python爬取FLASH播放器中的资料相关推荐

  1. python搜索网页特定区域内容_Python爬取练习:指定百度搜索的内容并提取网页的标题内容...

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. 以下文章源于白菜学python ,作者小白菜 刚接触Python的新手.小白,可以复制下面的链接去 ...

  2. python爬取资料_Python爬取FLASH播放器中的资料

    Python爬取FLASH播放器中的资料. 一.首先了解一下AMF协议:AMF(Action Message Format)是Flash与服务端通信的一种常见的二进制编码模式,其传输效率高,可以在HT ...

  3. python 爬取搞笑视频_Python爬取知乎上搞笑视频,一顿爆笑送给大家

    前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者:Huangwei AI 来源:Python与机器学习之路 PS:如有需 ...

  4. python爬抖音短视频_python爬取抖音小视频

    import os,json,requests #伪装头 headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) App ...

  5. python爬取flash数据_爬取flash数据

    关于html爬取数据的文章已经有很多了,我今天主要和大家交流的是如何爬取flash网页的数据.这方面资料相对比较少,主要是html5兴起后现在flash站很少了,不过用于技术研究还是可以尝试一下,这篇 ...

  6. Python爬虫:输入公司名称,爬取企查查网站中的公司信息

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. 以下文章来源于Python爬虫数据分析挖掘 ,作者:李运辰 根据输入的公司名称来爬取企查查网 ...

  7. python爬取网页json数据_python爬取json数据库

    手把手教你使用Python抓取QQ音乐数据(第一弹) [一.项目目标] 获取 QQ 音乐指定歌手单曲排行指定页数的歌曲的歌名.专辑名.播放链接. 由浅入深,层层递进,非常适合刚入门的同学练手. [二. ...

  8. python 爬取直播弹幕视频_python爬取斗鱼B总直播弹幕

    原博文 2018-07-10 18:00 − 在某群中看到关于弹幕爬取的需求,又因为斗鱼比较OP,就以这个作为切入点. 如果你想了解如何获取弹幕,我的这个例子就可以让你豁然开朗,对于哪些没有开发弹幕的 ...

  9. python爬app视频_python爬取抖音APP视频教程

    本文讲述爬取抖音APP视频数据(本文未完,后面还有很多地方优化总结) 公众号回复:抖音 即可获取源码 1.APP抓包教程,需要用到fiddler fiddler配置和使用查看>>王者荣耀盒 ...

最新文章

  1. 高性能的JavaScript--加载和执行
  2. Python 用smtplib库发邮件报错:[WinError 10061] 由于目标计算机积极拒绝,无法连接。解决办法
  3. 二维稳态热传导 代码实现_博世壁挂炉发生故障代码及处理办法
  4. c语言拟合线性直线误差最小,急~~~~~~!!!求解!用C语言编写最小二乘法求数据的拟合曲线~并做出图显示拟合效果!高分悬赏!...
  5. Adroid真机调试
  6. python中的requests模块的使用大全
  7. maven项目 ant_将大型项目从Ant迁移到Maven
  8. 【语言处理与Python】10.1自然语言理解\10.2命题逻辑
  9. 高精度乘法(信息学奥赛一本通-T1307)
  10. JSP实现点击链接后下载文件(相当于右键另存)功能
  11. Linux 系统恢复误删除 Linux文件
  12. CTF—攻防练习之HTTP—命令执行漏洞
  13. bzoj千题计划164:bzoj5123: 线段树的匹配
  14. ps怎么去掉框框不伤字体_PS如何去掉和替换图片中的文字? 照着学就行了
  15. matlab模糊控制侧方位泊车
  16. 把Ethernet(以太网)基本工作原理说清楚
  17. std::stack使用总结
  18. 从零实现一个简单卷积神经网络
  19. 大风吹乱了我的头发,就像吹一朵蒲公英
  20. 弹性云服务器(Elastic Cloud Server,ECS)

热门文章

  1. RISC-V 架构及MRS 开发环境介绍
  2. 进一步学习操作系统 - 哈工大李治军老师 - 学习笔记 L26L27
  3. 《奥日与精灵意志》是如何完成近乎不可能的Switch移植任务的?
  4. VCM驱动IC--close loop
  5. linux下RTP编程(使用JRTPLIB)
  6. 前沿重器[1] | 微软小冰-多轮和情感机器人的先行者
  7. 迅为RK3568开发板Ubuntu系统编写运行Qt工程
  8. angular isActive
  9. tomcat服务器接口响应超时,Tomcat请求超时
  10. Linux仿真不checkquota命令,quotacheck命令不能创建aquota.user和aquota.group文件解决方法...