房價永遠是最讓人頭疼且激動的話題,尤爲是在帝都,多少人一生都爲了一套房子打拼。正好我也想用一個你們比較關心的話題做爲案例,把目前我開發的這套軟件進行一次完整的演練。從數據採集,到清洗,分析,和最終可視化和報告的呈現,實現一次完整的流程。一方面能夠給你們切實的分享一些有用的信息,再者能夠更好地瞭解這套軟件的使用流程。 關於本工具的介紹,可參考數據挖掘平臺介紹(綜述)——平臺簡介。html
天然的,文章分爲四部分,本節是第一部分:數據爬取和採集。正則表達式
俗話說巧婦難爲無米之炊,沒數據,分析就沒有了意義。爲了找到合適的數據,我翻到了鏈家的官網。http://beijing.homelink.com.cn/ 這裏的數據雖然遠遠算不上準確吧,畢竟掛在網上的東西和真實數據確定會有差距,但可讀性很好,數據也比較全。咱們就看看怎麼去爬取這些數據吧!算法
鏈家官網:數據庫
總共的房源數是72964套在售,主要關心的數據是面積,價格,位置,特色,地理座標,看房用戶等(反映熱度)。咱們就看看能不能把這些數據抓到手!瀏覽器
本次介紹的網頁採集器有以下特色:工具
首先把「網頁採集器」模塊拖放到算法處理器中:post
下圖是 網頁採集器 的設置菜單:測試
首先 填寫URL路徑,爲二手房的數據路徑,通常默認編碼爲UTF-8, 程序中作了對編碼格式的識別功能。點擊訪問網頁:編碼
便可在主窗口中,分別以原始HTML方式和瀏覽器方式瀏覽該網頁:url
我通常會選用HTML 源代碼的方式查看數據。
將感興趣的數據,從HTML中拷貝到「篩選字段」對話框中,系統會自動查找對應的路徑
給屬性起個名字,好比「介紹」 ,點擊添加字段,便可完成一個屬性的添加。
一樣的,能夠把超連接也作一樣的處理,添加字段。
在選擇數據時,儘量選擇比較有表明性的數據,同時,要把數據分佈在列表的不一樣項中。
你能夠隨時查看和修改添加的屬性,在高級選項中,點擊屬性列表:,便可查看當前添加的全部屬性,並進行增刪改查。
在選擇了五個感興趣的數據以後,可點擊「開始爬取」。此時程序會嘗試在本網頁上進行一次抓取,咱們可經過這樣的嘗試判斷程序執行的準確性:
獲取了12項,同時點擊查看:
相似的,咱們能夠將其餘包括樓層數,朝向等,都經過相似的方法進行添加。若是確實一些數據程序沒法自動發現,可經過手寫XPATH進行解決。
添加了多達10個屬性,並進行網頁爬取測試後,咱們認爲程序設置沒有問題了,那就能夠進行批量網頁爬取了。
具體的方法,能夠設置批量任務屬性。 從網頁上看到,總共有6073頁:
同時,不一樣的頁面區別僅在URL的最後:
http://beijing.homelink.com.cn/ershoufang/pg2/
http://beijing.homelink.com.cn/ershoufang/pg6074/
因此批量參數能夠寫成:
http://beijing.homelink.com.cn/ershoufang/{0}/ ,能夠把須要替換的數字改成大括號括起來的形式。
加上10ms的延時。
將當前的爬蟲保存爲一個任務,同時起名字爲「鏈家爬蟲」
接下來,便可在菜單欄中, 運行->任務->啓動批量任務
選擇要執行的任務爲「鏈家爬蟲」:
設置要遍歷的模塊爲網頁採集器:
選取遍歷的參數:
設置參數列表:
能夠在左側填寫間隔,最大值和最小值生成參數,同時也能夠在右側,以每行一個參數填寫要遍歷的參數。咱們生成的參數爲1-6074
點擊完成,便可執行批量任務:
大概在兩小時後,便可爬取全部的數據~~~哈哈哈
查看一下戰果:
咱們將數據導出成文件,方便下次進行分析。(也能夠保存到數據庫)
選擇文件格式,填寫文件名:
選擇要導出的字段,和是否要修改字段的名稱:
點擊肯定,便可將數據導出完畢。
任務完成!
此次戰果斐然,在兩小時內採集了七萬條數據,而整個配置的時間僅僅不到兩分鐘。可是必須發現,有不少數據是有問題的,好比面積和一些屬性爲空,會對後期作數據分析形成影響。所以下一節咱們介紹數據清洗工做,敬請期待。