網頁數據採集 - 系列之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=

打開,看到什麼了,是否是眼睛被亮瞎了:

這就是你要的數據,好了,今天就到這裏,謝謝你們關注。

後續再給你們分享其餘網頁數據採集的熱點難點技術話題。

相關文章
相關標籤/搜索