一般来说flash中的数据是不能被现有技术很容易采集到的,但是也不能谈flash色变,要具体问题具体分析,有些flash是可以通过一些分析发现背后的数据。然后采集就变得很容易了。

具体案例:搜房房价走势采集。

先看看房价走势页面:

http://baolishangcheng.soufun.com/house/2810932360/fangjia.htm

可以看出,这是个flash的,还有很多鼠标移动上去显示的数据。

右键点击,发现确实是flash,然后查看源码,发现如下信息:

<iframe src="http://pinggus.soufun.com/Estimate/process/makeflashchart.aspx?dis=3&amp;city=%C9%EE%DB%DA&amp;height=218" width="680" height="218" marginwidth="0" marginheight="0" frameborder="0" scrolling="no"></iframe>

原来flash是放在iframe中的,好的,打开改iframe对应的网页

http://pinggus.soufun.com/Estimate/process/makeflashchart.aspx?dis=3&city=%C9%EE%DB%DA&height=218

别激动,没看到数据,还是flash,再查看源码,发现一堆脚本:

swfobject.embedSWF("http://img.soufun.com/secondhouse/image/pinggu/js/open-flash-chart.swf", "mychart", "100%", "218", "9.0.0", "expressInstall.swf", {"data-file":"makechartdata.aspx%3fdis%3d3%26newcode%3d1010035274%26city%3d%25c9%25ee%25db%25da%26district%3d%26commerce%3d%26isprojname%3d"},{allowScriptAccess:'always',wmode:'transparent'}
 

);

玄机就在这里,仔细观察该脚本,发现其使用了一个叫做open-flash-chart的flash,经过google,是个开源的,打开其官网,发现关于它如何使用的文档:

http://teethgrinder.co.uk/open-flash-chart/

再结合上面的源码,发现最关键的地方,数据是由:data-file指定的:

"data-file":"makechartdata.aspx%3fdis%3d3%26newcode%3d1010035274%26city%3d%25c9%25ee%25db%25da%26district%3d%26commerce%3d%26isprojname%3d"

在经过一些基本常识即可发现这是一个url,手工对其解码,得到如下url:

makechartdata.aspx?dis=3&newcode=1010035274&city=%25c9%25ee%25db%25da&district=&commerce=&isprojname=

加上url前半部分,得到完整url:

http://pinggus.soufun.com/Estimate/process/makechartdata.aspx?dis=3&newcode=1010035274&city=%25c9%25ee%25db%25da&district=&commerce=&isprojname=

打开,看到什么了,是不是眼睛被亮瞎了:

这就是你要的数据,好了,今天就到这里,谢谢大家关注。

最新文章

  1. mybatis逆向工程生成JavaBean、dao、mapper generatorSqlmapCustom
  2. Web API应用架构设计分析(1)
  3. IE11下不能引入外部css的解决方法
  4. 外联css及js的使用
  5. poj2429 GCD &amp; LCM Inverse
  6. C# 跨线程操作控件(简洁)
  7. mysql sqlmap 注入尝试
  8. Android-Wheel-Menu
  9. javascript (八) 语法格式
  10. 2013.4.A
  11. 使用javaMail实现简单邮件发送
  12. shell脚本备份日志文件
  13. 云原生实践之 RSocket 从入门到落地:Servlet vs RSocket
  14. The 16th Zhejiang Provincial Collegiate Programming Contest Sponsored(E F G H I)
  15. 剑指offer——python【第28题】数组 中出现次数超过一半的数字
  16. 线程池 多线程运行结束后 如何关闭? ExecutorService的正确关闭方法
  17. jquery库google加载
  18. 51nod 1243 排船的问题(二分)
  19. GitHub正式启用声明
  20. High Voltage Boost Supply

热门文章

  1. Express搭建NodeJS项目
  2. c++的继承方式
  3. PHP TS 和 NTS 版本选择
  4. Putty+Xming实现在Windows客户端显示Linux服务器端的图形化程序
  5. LInux查看网速带宽及各进程占用情况:nethogs
  6. es6 很简单
  7. 半夜思考之查漏补缺 , Spring 中 Bean 之间的依赖问题
  8. 通过ClientDataSet复制表的结构及数据
  9. BZOJ 2844: albus就是要第一个出场
  10. Cobalt Strike 3.13的新功能