python爬取flash数据_python爬虫: 爬取flash播放页面的信息
我们通过查看知道flash类型的网页采取文件格式是amf类型的
AMF(Action Message Format) 是Flash与服务端通信的一种常见的二进制编码模式,其传输效率高,可以在HTTP层面上传输。
python 要和AMF 交互需要一个pyamf 模块
1, 下载pyamf
pyamf点击下载
2, 安装的时候发现这个版本不适合我的版本, 经过搜索, 发现了一个解决办法
安装Py3AMF, 安装方法特别简单
pip install Py3AMF1
需要用到charles抓包工具,抓取AMF包,得到请求/应答的AMF数据,对AMF格式的请求和响应的数据进行分析。
reponse
下面上代码
import requests
import uuid
import pyamf
from pyamf import remoting
from pyamf.flex import messaging
class HqPara:
def __init__(self):
self.source = None
# 注册自定义的Body参数类型,这样数据类型com.itown.kas.pfsc.report.po.HqPara就会在后面被一并发给服务端(否则服务端就可能返回参数不是预期的异常Client.Message.Deserialize.InvalidType)
pyamf.register_class(HqPara,alias='com.itown.kas.pfsc.report.po.HqPara')
msg = messaging.RemotingMessage(messageId=str(uuid.uuid1()).upper(),
clientId=str(uuid.uuid1()).upper(),
operation='getHqSearchData',
destination='reportStatService',
timeToLive=0,
timestamp=0)
# 构造请求数据
def getRequestData(page_num,total_num):
# 请求体第一个参数是查询参数, 第二个是页数,第三个是控制每页显示的数量
msg.body = [HqPara(),str(page_num),str(total_num)]
msg.headers['DSEndpoint'] = None
msg.headers['DSId'] = str(uuid.uuid1()).upper()
req = remoting.Request('null', body=(msg,))
env = remoting.Envelope(amfVersion=pyamf.AMF3)
env.bodies = [('/1',req)]
data = bytes(remoting.encode(env).read())
# 返回一个请求的数据格式
return data
def getResponse(data):
# 这个url一定是amf结尾的哦
# url = 'http://jgsb.agri.cn/controller?SERVICE_ID=REGISTRY_JCSJ_MRHQ_SHOW_SERVICE&recordperpage=15&newsearch=true&login_result_sign=nologin'
url = 'http://xxxxxxx/amf'
response = requests.post(url, data, headers={'Content-Type': 'application/x-amf'})
return response.content
def getContent(response):
parse_info = remoting.decode(response)
# total_num = parse_info.bodies[0][1].body.body[3]
info = parse_info.bodies[0][1].body.body[0]
return info
reqdata = getRequestData(1,15)
req = getResponse(reqdata)
info =getContent(req)
# 这是一共有多少调数据
print(len(info))
# 做解析,拿出你想要的数据
for i in info:
print(i)1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
python爬取flash数据_python爬虫: 爬取flash播放页面的信息相关推荐
- python爬虫爬取股票软件数据_Python爬虫抓取东方财富网股票数据并实现MySQL数据库存储(转载)...
完整代码 实际上,整个事情完成了两个相对独立的过程:1.爬虫获取网页股票数据并保存到本地文件:2.将本地文件数据储存到MySQL数据库.并没有直接的考虑把从网页上抓取到的数据实时(或者通过一个临时文件 ...
- python抓取数据库数据_Python爬虫抓取东方财富网股票数据并实现MySQL数据库存储...
Python爬虫可以说是好玩又好用了.现想利用Python爬取网页股票数据保存到本地csv数据文件中,同时想把股票数据保存到MySQL数据库中.需求有了,剩下的就是实现了. 在开始之前,保证已经安装好 ...
- python爬表格数据_python爬虫,爬取表格数据
python爬虫,爬取表格数据 python爬虫,爬取表格数据 python爬虫,爬取全国空气质量指数 编程环境:Jupyter Notebook 所要爬取的网页数据内容如下图 python爬虫代码及 ...
- python解析网页数据_python爬虫——爬取网页数据和解析数据
1.网络爬虫的基本概念 网络爬虫(又称网络蜘蛛,机器人),就是模拟客户端发送网络请求,接收请求响应,一种按照一定的规则,自动地抓取互联网信息的程序. 只要浏览器能够做的事情,原则上,爬虫都能够做到. ...
- python爬取bilibili弹幕_Python爬虫爬取Bilibili弹幕过程解析
先来思考一个问题,B站一个视频的弹幕最多会有多少? 比较多的会有2000条吧,这么多数据,B站肯定是不会直接把弹幕和这个视频绑在一起的. 也就是说,有一个视频地址为https://www.bilibi ...
- python爬取学校新闻_python爬虫爬取新闻的简单实现
我们通常是使用爬虫爬取网站信息,其实网络爬虫是一种应用于搜索引擎的程序.使用python爬虫可以将一个网站的所有内容与链接进行阅读.例如我们每日都要获取新闻信息,利用python爬虫就可以帮助我们爬取 ...
- python爬图代码实例_Python爬虫爬取煎蛋网图片代码实例
这篇文章主要介绍了Python爬虫爬取煎蛋网图片代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 今天,试着爬取了煎蛋网的图片. 用到的包: ...
- python爬取微博文本_Python爬虫爬取新浪微博内容示例【基于代理IP】
本文实例讲述了Python爬虫爬取新浪微博内容.分享给大家供大家参考,具体如下: 用Python编写爬虫,爬取微博大V的微博内容,本文以女神的微博为例(爬新浪m站:https://m.weibo.cn ...
- python爬虫抓取百度图片_Python爬虫抓取百度的高清摄影图片
成果预览: 源代码: import requests import re url = 'https://image.baidu.com/search/index' headers = { 'User- ...
最新文章
- mysql 分库分表 建表_【分库分表】sharding-jdbc实践—分库分表入门
- 研究:即便是最好的人脸识别算法也会受到口罩干扰
- TOJ 3750: 二分查找
- Ubuntu18.04 MariaDB
- UISegmentedControl swift
- .net mvc 报表_FastReport.Net已实现对.Net 5.0的支持
- 【51nod - 1050】循环数组最大子段和(dp)
- 《Docker技术从入门到实践》第1,2章
- python的property用法_Python的@property使用方法详解
- Java集合框架源码解读(5)——TreeMap
- 华展云-让展览更高效 2017第6届中国国防信息化装备与技术博览会会刊(参展商名录)
- Android-TextView添加字体库
- APISpace 银行卡二要素API
- 工厂食堂3D指纹考勤系统解决方案
- kubuntu我显示服务器,还是不行!kubuntu到底怎么配置IP才能上网啊?[已经解决!]...
- PHP trait 特性
- 制造业如何做好数字化转型
- bootstrap4--概述与页面创建
- STM32-SPI资料整理
- 第五章.系统安全分析与设计
热门文章
- 什么是事件驱动架构(EDA)? 一个会写诗的程序员
- SEO优化(搜索引擎优化)
- JS根据身份证号计算年龄
- 艾永亮:耐克阿迪都慌了,成功逆袭的李宁,产品创新战略是什么
- java js highcharts_highcharts java饼图
- 中国历史朝代及皇帝简介
- 掰碎了的正则表达式 : Java 篇
- 友盟启动耗时分析之耗时趋势及性能拆解
- unity初学6——简易的UI制作(血条制作)和音频加入以及NPC的对话气泡(2d)
- 机器学习-无监督学习-聚类:聚类方法(一)--- k-Means(k-均值)算法,k-Means++算法【使用最大期望值算法(EM算法)来求解】