java 抓取 flash 控件_Java模拟Flash爬取透明网一房一价数据

本文介绍了如何使用Java抓取Flash网页中的数据,以房产透明网为例,通过Charles抓包工具分析请求,然后使用Java模拟AMF请求获取并解析数据,涉及ActionMessage、RemotingMessage等类的使用。
摘要由CSDN通过智能技术生成

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

以房产透明网为例,该网站的一房一价数据就是通过flash显示,接下来将一步步介绍如何获取对应的数据。

特别声明,本文章仅做相关技术学习交流,数据版权为成都透明网,个人或企业请勿用于商业或非法用途,如该文章有不妥之处请联系本人删除。

我找了一个楼盘用浏览器自带的工具查看,可以看到返回的数据是乱码,如下图。

b5d8a2dfffb807fd43106ffeff61a2d5.png

这个主要是返回的数据格式是application/x-amf,浏览器无法正常解析,接下来就需要用的抓包工具Charles了,这个工具没给钱的话30分钟会关闭,我觉得30分钟也够用了,目前一直忍受着。

1.首先打开Charles

71b6cb52d689e5ff42a3a04137acc18a.png

2.打开透明网一房一价页面,点击一个单元后就可以看到请求的数据了

da58e8b9acf25deb411b9c2711dd6b0d.png

eaed61406e07686df18ddbcebe7bb76f.png

这里面比较重要的几个部分我都截取了一下,最后HOUSEITEMLIST,就我们需要处理的数据了。

3.可以看到通过抓包工具已经可以看到请求的数据了,接下来就需要用java模拟amf的请求。

org.apache.flex.blazeds

flex-messaging-core

4.7.2

org.apache.flex.blazeds

flex-messaging-common

4.7.2

先要引入这两个包,这个请求代码如下,部分参数我设置为******,如果需要测试自行粘贴对应的参数。

public static void main(String[] args) {

try {

URL urlObject = new URL("http://cd.funi.com/messagebroker/amf");

HttpURLConnection urlConnection = (HttpURLConnection) urlObject.openConnection();

urlConnection.setDoOutput(true);

urlConnection.setRequestProperty("Content-type", "application/x-amf;charset=gb2312"

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值