爬取基于Flex技术的网站数据

本文介绍了如何爬取基于Flex技术的网站数据,特别是使用AMF二进制编码的通信方式。通过抓包工具分析请求包和响应数据,利用pyamf库(对于Python3需替换为Py3AMF)构造请求并解析响应,存储解析后的JSON数据。文章以农业信息网为例,详细阐述了请求包分析、返回包解析和数据存储的步骤,并提醒注意连续请求可能导致的503错误。
摘要由CSDN通过智能技术生成

爬取基于Flex技术的网站数据

Flex技术是网站运用flash方法与客户端进行数据通信,数据的格式可以是txt,json或amf等。
AMF是一种二进制编码方式,其在flash传输效率高,以农业信息网数据为例,爬取的方式与一般ajax分析相同。通过抓包分析请求头和响应数据,然后构造请求、接受返回数据。
github原文地址
下面我以中国农产品批发市场每日价格行情http://jgsb.agri.cn/controller?SERVICE_ID=REGISTRY_JCSJ_MRHQ_SHOW_SERVICE&recordperpage=15&newsearch=true&login_result_sign=nologin为例来分析爬取方法

请求包分析

目前Chales抓包工具能够支持将AMF编码解析成明文形式,便于我们分析。请求截图如下:

图中可以看到请求的body包含一个com.itown.kas.pfsc.report.po.HqPara对象和四个参数,结合网页可知为flash上的四个选择菜单,可以选择省份和批发市场名称等。对此结合pyawf的文档可以写出构造请求函数如下:

from urllib import request
import uuid  
import pyamf
import json,datetime  
from pyamf import remoting  
from pyamf.flex import messa
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值