數據挖掘工具分析北京房價 (一) 數據爬取采集


      一. 前言

         房價永遠是最讓人頭疼且激動的話題,尤其是在帝都,多少人一輩子都為了一套房子打拼。正好我也想用一個大家比較關心的話題作為案例,把目前我開發的這套軟件進行一次完整的演練。從數據采集,到清洗,分析,和最終可視化和報告的呈現,實現一次完整的流程。一方面可以給大家切實的分享一些有用的信息,再者可以更好地了解這套軟件的使用流程。  關於本工具的介紹,可參考數據挖掘平台介紹(綜述)——平台簡介。

    

         自然的,文章分為四部分,本節是第一部分:數據爬取和采集。

     二.  准備工作

          俗話說巧婦難為無米之炊,沒數據,分析就沒有了意義。為了找到合適的數據,我翻到了鏈家的官網。http://beijing.homelink.com.cn/  這里的數據雖然遠遠算不上准確吧,畢竟掛在網上的東西和真實數據肯定會有差距,但可讀性很好,數據也比較全。我們就看看怎么去爬取這些數據吧!

        鏈家官網:

         image

         總共的房源數是72964套在售,主要關心的數據是面積,價格,位置,特點,地理坐標,看房用戶等(反映熱度)。我們就看看能不能把這些數據抓到手!

         本次介紹的網頁采集器有如下特點:

  • 不需要寫正則表達式或者編寫代碼
  • 只需要將感興趣的數據選中,並為其起名字(默認的名字亦可)
  • 設置批量執行的方法即可執行批量采集
  • 適合爬取列表型頁面
  • 簡單方便,效率較高
  • 能夠爬取動態網頁和需要登錄的網頁(這種操作稍微復雜一些)

 

 

            首先把“網頁采集器”模塊拖放到算法處理器中:

image

        下圖是 網頁采集器 的設置菜單:

image

    首先 填寫URL路徑,為二手房的數據路徑,一般默認編碼為UTF-8, 程序中做了對編碼格式的識別功能。點擊訪問網頁:

    即可在主窗口中,分別以原始HTML方式和瀏覽器方式瀏覽該網頁:

image

      我一般會選用HTML 源代碼的方式查看數據。

      將感興趣的數據,從HTML中拷貝到“篩選字段”對話框中,系統會自動查找對應的路徑

      image
image

   給屬性起個名字,比如“介紹” ,點擊添加字段,即可完成一個屬性的添加。

     同樣的,可以把超鏈接也做同樣的處理,添加字段。

image

  在選擇數據時,盡可能選擇比較有代表性的數據,同時,要把數據分布在列表的不同項中。

   你可以隨時查看和修改添加的屬性,在高級選項中,點擊屬性列表:,即可查看當前添加的所有屬性,並進行增刪改查。

image
   在選擇了五個感興趣的數據之后,可點擊“開始爬取”。此時程序會嘗試在本網頁上進行一次抓取,我們可通過這樣的嘗試判斷程序執行的准確性:

獲取了12項,同時點擊查看:

  image

  

   image

   類似的,我們可以將其他包括樓層數,朝向等,都通過類似的方法進行添加。如果確實一些數據程序無法自動發現,可通過手寫XPATH進行解決。

        3. 批量任務

       添加了多達10個屬性,並進行網頁爬取測試后,我們認為程序設置沒有問題了,那就可以進行批量網頁爬取了。

       具體的方法,可以設置批量任務屬性。 從網頁上看到,總共有6073頁:

image

  

       同時,不同的頁面區別僅在URL的最后: 

      http://beijing.homelink.com.cn/ershoufang/pg2/

      http://beijing.homelink.com.cn/ershoufang/pg6074/ 

       所以批量參數可以寫成:

   http://beijing.homelink.com.cn/ershoufang/{0}/ ,可以把需要替換的數字改為大括號括起來的形式。 

       image

    加上10ms的延時。

    將當前的爬蟲保存為一個任務,同時起名字為“鏈家爬蟲”

  image

    接下來,即可在菜單欄中, 運行->任務->啟動批量任務

   image

  選擇要執行的任務為“鏈家爬蟲”:

image

設置要遍歷的模塊為網頁采集器:

image

選取遍歷的參數:

image

設置參數列表:

   image

   可以在左側填寫間隔,最大值和最小值生成參數,同時也可以在右側,以每行一個參數填寫要遍歷的參數。我們生成的參數為1-6074

   點擊完成,即可執行批量任務:

   image

   大概在兩小時后,即可爬取所有的數據~~~哈哈哈

     image

   查看一下戰果:

image

我們將數據導出成文件,方便下次進行分析。(也可以保存到數據庫)

選擇文件格式,填寫文件名:

image

選擇要導出的字段,和是否要修改字段的名稱:

image

點擊確定,即可將數據導出完畢。

任務完成!

  三. 總結

      這次戰果斐然,在兩小時內采集了七萬條數據,而整個配置的時間僅僅不到兩分鍾。但是必須發現,有很多數據是有問題的,比如面積和一些屬性為空,會對后期做數據分析造成影響。因此下一節我們介紹數據清洗工作,敬請期待。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM