


摘要:隨著大數據時代的到來,信息出現了爆炸式的增長,計算機技術在大數據時代的重要性日益凸顯[1]。本文以python爬蟲框架scrapy為出發點,利用計算機技術,對貝殼找房網重慶在售二手房進行抓取,并進行數據分析,得出二手房分布區域最多的地方單價不一定是最高,房屋中介最喜歡的標題是戶型方正等結論。
關鍵詞:計算機技術;python爬蟲;scrapy;數據分析
中圖分類號:TP393 文獻標識碼:A
文章編號:1009-3044(2019)36-0006-02
1背景
隨著互聯網的高速發展、數據庫存儲技術的成熟,高性能的存儲設備和存儲介質日益普及,人們在生活、工作等產生的數據量以指數形式爆炸式增長,大數據發展勢不可擋,但如何利用大數據分析為人們的生活提供便利就成了人類的共同話題。同時由于人們的住房壓力越來越大,但新房價格一般來說更高,因此有些人會考慮購買二手房。據中國指數研究院公布的數據顯示[2],重慶2015年8月的二手房銷售價格指數為1416,而到2019年8月的二手房銷售價格指數為1747,因此就有必要探討二手房價格背后的影響因素。
大數據時代的到來,讓人們可以在互聯網上獲得越來越多的信息,其中包括二手房信息。但網絡數據來源廣泛,且數據量龐大,為了把網貞上的數據下載到本地,且節約時間,網絡爬蟲技術便應運而生。本文選擇貝殼網重慶二手房為數據來源,并利用python爬蟲框架scrapy對數據進行爬取,爬取的字段包括發布的二手房標題、位置、樓層、修建年份、面積、朝向、戶型、總價、單價等,一共九個字段。最后對獲得的數據進行數據清洗、可視化,分析重慶二手房樓層、面積等對房價的影響情況。2重慶貝殼二手房爬蟲框架
2.1 Scrapy爬蟲框架的介紹
網絡爬蟲是在網絡上爬行的蜘蛛,能夠通過網頁鏈接,對網頁上的信息進行訪問,獲取網頁的源代碼。Scrapy是一種由Twisted編寫的、快速的高級網絡爬蟲框架,可以訪問頁面,并提取其中的結構化數據,包括的用途有自動化測試、監控、數據挖掘。
Scrapy框架分別由以下七個部分組成:
1) scrapy引擎:負責各個部分之間的數據流動。
2)調度器:接受引擎的請求,并把請求加入隊列,并返回給引擎。
3)下載器:下載網頁源代碼并返回給引擎。
4)爬蟲文件:接受網頁源代碼并進行數據定位和提取。
5)項目管道:負責處理提取后的數據,包括清理、存儲等。
6)下載中間件:位于引擎和下載器之間,能對網頁請求或響應進行加工處理。
7)爬蟲中間件構成:位于引擎和爬蟲文件之間,能夠處理爬蟲文件的輸入和輸出。
2.2 scrapy爬蟲框架的編寫
2.2.1創建項目文件
首先,創建整個爬蟲項目文件,通過在cmd中輸入scrapystartproject beike創建框架,并進入beike目錄,cmd中輸入scra-py genspider spider ke.com完善爬蟲名和爬蟲的域名設置。
2.2.2定義需要爬取的字段
由于serapy框架需要實現定義變量,因此需要在items.py[3]定義變量,以及確定變量的個數。
2.2.3爬蟲文件的編寫
這里是整個scrapy框架的核心,這里涉及對返回的網頁源代碼進行定位和提取,同時體現了scrapy框架的強大。Scrapy框架支持多種數據定位方式,包括正則表達式,beautifulsoup,xpath,css選擇器等,本文使用beautifulsoup進行數據的定位和提取。
2.2.4數據的存儲
進行定位和提取之后,由于需要保存到本地進行后續的分析,需要在pipelines.py里進行數據的保存,選擇保存的數據格式為Excel文件。
當完成整個框架后,在cmd中輸入scrapy crawl spider之后,程序開始運行。
3數據分析
當已經把網頁上的數據下載到本地之后,需要對數據中隱藏的規律進行探索,找尋其中擁有實用價值,分析出重慶貝殼二手房數據的價值,為人們選擇二手房或為信息發布者提供便利。
3.1數據預處理 在進行數據分析之前,由于可能存在殘缺補全的數據,因此需要先進行數據預處理,才能進行接下來的數據分析[4]。首先進行數據清洗,即將多余重復的數據篩選并清除,將有缺失的數據進行處理,將錯誤的數據進行整理。接著進行數據加工,經過清洗的數據,并不一定能直接進行數據分析,因此需要進行加工。
首先用pandas庫讀取數據[5],使用info方法可以看到數據存在缺失值,為了不影響后續的分析,選擇dropna方法刪除缺失值,使用pandas庫的str屬性的split方法對數據進行切割,得到完整的數據。未進行數據清洗之前的數據一共有3000行,經過數據預處理過程后,數據一共有2709行,預處理后的結果如圖l所示。
3.2數據可視化
可視化技術作為解釋數據最有效的手段之一,能夠把分析結果以圖形圖像的方式呈現,便于人們發現數據中隱藏的規律,有著廣泛的應用。
對重慶市二手房總價與面積的關系以散點圖的方式進行可視化,以直方圖展示二手房在重慶各個區域分布數量最多的十個區域及單價平均值最高的十個區域,可視化結果圖2、圖3所示。
由圖2可以得出面積和房價是正相關關系,隨著房屋面積的增加,房間價格也隨之上升,符合人們的常識。由圖3看出重慶萬達文化旅游城御林是二手房出售最多的區域,出售數量遠超其他區域,數量達到了32套,但寰宇天下天璽是二手房平均單價最高的地方,平均單價達到了27459元/平方米,所在區域位于重慶江北區重慶金融中心,是兩江新區的龍頭,因此二手房平均單價高于其他區域。
通過seabom的distplot方法,為二手房面積擬合正態分布,擬合結果如圖4所示,可以看m面積的分布符合正態分布,并計算出擬合的偏度為1.448067,峰度為4.841826,并且面積為80平方米左右的房屋數量最多。此外還有一些大于170平方米的房屋,已經超出正常范圍。
對重慶二手房最常出現的戶型進行計數并可視化顯示結果,由圖5可知,二手房最常出現的戶型為3室2廳。
為了探索二手房標題后的規律,使用jieba分詞,對標題進行切分,再用可視化的方法,畫出標題的詞云圖。由圖6可知二手房為了更快的賣出房屋,標題通常包含戶型方正、誠心出售、拎包人住等關鍵詞。
4總結
大數據時代的到來,數據量以指數的方式增長,應該利用計算機計數挖掘大數據背后的信息,為人們的生活提供方便。本文利用了網絡爬蟲技術,從貝殼找房網爬取了重慶二手房的信息,經過數據分析,得出二手房最常出現的戶型是3室2廳,標題大都包含戶型方正等結論,為人們發布房源,購買二手房等提供了信息。
參考文獻:
[1]劉智慧,張泉靈.大數據技術研究綜述[J].浙江大學學報:工學版,2014,48(6):957-972.
[2]劉乙穎,余函.重慶市房地產市場價格變動趨勢探卡廳[J].市場周刊(理論研究),2017:38-39.
[3]晉振杰,曹少中,項宏峰,等.基于python的電商書籍數據爬蟲研究[J].北京印刷學院學報,2018,3(26):39-42.
[4]張文霖,劉夏璐,狄松.誰說菜鳥不會數據分析(入門篇)[D].北京:電子工業出版社,2016.
[5]熊暢.基于Python爬蟲技術的網頁數據抓取與分析研究[J].數字技術與應用,2017(8):35-36.
【通聯編輯:光文玲】
收稿日期:2019-09-13
作者簡介:劉航(1995-),男,重慶豐都人,碩士在讀,主要研究方向為爬蟲、圖像處理。