网页数据采集 - 系列之Flash数据采集

常常看到一些朋友在讨论如何采集flash中的数据,讨论来讨论区,结论就是:flash不能采集,其实也不老是这样。本篇就跟你们分享如何采集flash中的数据。web

 

在开始以前,先说明一下:通常来讲flash中的数据是不能被现有技术很容易采集到的,可是也不能谈flash色变,要具体问题具体分析,有些flash是能够经过一些分析发现背后的数据。而后采集就变得很容易了。express

 

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

先看看房价走势页面:http://baolishangcheng.soufun.com/house/2810932360/fangjia.htmurl

能够看出,这是个flash的,还有不少鼠标移动上去显示的数据。spa

右键点击,发现确实是flash,而后查看源码,发现以下信息:3d

<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>code

 

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

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

 

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

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=

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

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

后续再给你们分享其余网页数据采集的热点难点技术话题。

相关文章
相关标签/搜索