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