999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于python的房屋信息數(shù)據(jù)分析

2019-02-06 05:23:56
探索科學(學術版) 2019年3期

李 紅

大連理工大學城市學院工程實踐中心 遼寧 大連 116101

一、準備工作

beautif ulsoup4是一個python庫,能夠將ht ml或者x ml文檔解析為樹結構,方便我們查找和抓取數(shù)據(jù),因此我們需要手動安裝pip install

beautif ulsoup。

抓取到的數(shù)據(jù)通常都會用到pandas進行處理,它具有功能強大的函數(shù)來幫助我們進行數(shù)據(jù)的分析和存儲。故我們需要手動安裝pip install pandas。

為了直觀顯示數(shù)據(jù)分析結果,需要將房屋信息進行可視化展示,我們需要強大的pyechart,所以繼續(xù)手動安裝pip install pyecharts。

手動安裝好所需python庫之后,在lj Spider.py文件最開始導入相關庫:

i mport requests

fro m bs4 i mport Beautif ul Soup

i mport re

i mport pandas as pd

i mport os

i mport l x ml

二、數(shù)據(jù)爬取

1.分析目標網(wǎng)頁ht ml結構。以鏈家為例,使用googlechrome或者火狐瀏覽器打開鏈家網(wǎng)站,我們發(fā)現(xiàn)該網(wǎng)站每頁顯示30條房屋記錄,這部分房屋信息在列表ul中,選擇其中一條房屋信息,右鍵-->檢查,即可發(fā)現(xiàn)該條房屋信息在class="inf o clear"的div標簽中,找出標題、詳細信息、樓層、價格等信息所在的標簽。

2.抓取數(shù)據(jù)。找到數(shù)據(jù)之后,我們可以使用requests進行網(wǎng)頁抓取,在使用requests進行網(wǎng)頁抓取時,容易被目標網(wǎng)站發(fā)現(xiàn)而進行反爬,比如IP被限制的情況,此時我們一般可以添加user-agent、Referer、cookie等進行偽裝,以便順利獲得目標網(wǎng)頁信息。使用beautif ulsoup4進行格式轉化。設計house_item(url),進行單個房屋信息抓起并存儲,主要使用soup的find函數(shù)進行標簽定位爬取數(shù)據(jù),房屋信息中標題和小區(qū)在div標簽中的內嵌a標簽中,使用ite m['area Na me']=soup.find("div",attrs={"class":"area Na me"}).find("a").text,比較容易獲得數(shù)據(jù),也可以用正則獲取。如果感覺列表頁面提供的房屋信息不夠用,則可以去詳細頁面進行數(shù)據(jù)抓取。只是那樣的話,抓取的速度會很慢,我們要考慮清楚再行動。

接下來在主程序中,利用for循環(huán),按頁碼進行數(shù)據(jù)抓取,每頁的30條房屋信息用字典list進行存儲,使用pandas的DataFrame將list保存成二維表結構。并使用t o_csv函數(shù)同時將每頁房屋信息存儲到文本文件house_inf o.csv中,對應的列為“標題”“房屋信息”“總價”“單價”“樓層”“朝向”“裝修”……。注意,如果不是第一次導入數(shù)據(jù),則存儲數(shù)據(jù)時要采用追加形式,即設置mode='a',否則會出現(xiàn)數(shù)據(jù)被覆蓋的現(xiàn)象。同時header=False,index=False,即不再添加表頭和索引。

3.數(shù)據(jù)清理。房屋總價爬取到的數(shù)據(jù)為XX萬,單價XXXX平/米,面積XX平米,樓層信息中我們只關注樓層信息,但是卻獲得到了完整的樓層信息以及建筑時間等。此時我們就需要進行數(shù)據(jù)的清理。簡單的我們可以直接用str的函數(shù)index、split、strip等進行處理,例如data['area']=data['eara_mainInf o'].str.split('平米').str[0],floor_inf o.text[:floor_info.text.index(')')+1],soup0.find('div',attrs={'class':'total Price'}).text[:-1]。復雜些的可以使用正則表達式進行處理,例如re.findall('d+',soup.find('div',{'class':'unit Price'}).text)

三、可視化數(shù)據(jù)分析

先將大連地區(qū)所有行政分區(qū)的數(shù)據(jù)分批次導入到house_info.csv中(樣本數(shù)據(jù)總計9271條記錄,按各個分區(qū)平均抓取),接下來進行分析數(shù)據(jù)時,從csv文件中讀取出來生成表結構data,利用mean函數(shù)求平均值,max函數(shù)求最大值,min函數(shù)求最小值。按行政分區(qū)進行房價平均值計算,直觀的體現(xiàn)城市資源高配所在行政區(qū),首先按各個區(qū)使用data的groupby函數(shù)進行分組并統(tǒng)計各個區(qū)的房源總數(shù)gp=data.groupby(['fenqu'],as_index=False)['tit'].count(),計算各個區(qū)的面積單價平均值然后使用sort_values函數(shù)排序。使用pyecharts.Line來繪制折線圖,并標記房價最高、最低值。類似思路,先按小區(qū)進行分組,算出小區(qū)平均單價,然后用pyecharts.Bar來繪制柱狀圖展示排名top10的小區(qū),方便購房者看出整個城市的房價最高(即黃金地段)小區(qū)排名。由于篇幅有限,其他圖不在此展示。

四、總結

本文以房價數(shù)據(jù)分析為研究目標,利用鏈家網(wǎng)站收集數(shù)據(jù)資源作為參考,在研究了網(wǎng)站頁面結構基礎上,采用pyt hon語言的request、Beautif ulsoup、pandas等庫,設計了爬蟲ljspider進行數(shù)據(jù)爬取,并采用pyecharts進行生成圖表,直觀展示數(shù)據(jù),可供在該地區(qū)購買房屋者作為參考。筆者通過該程序的設計與實現(xiàn),發(fā)現(xiàn)不足并正在努力專研技術為后續(xù)改進努力。

主站蜘蛛池模板: 精品久久蜜桃| 亚洲综合精品第一页| 免费大黄网站在线观看| 国产最新无码专区在线| 老色鬼欧美精品| 女人天堂av免费| 国产 日韩 欧美 第二页| 亚洲欧洲日本在线| 全部毛片免费看| 成人精品午夜福利在线播放| 午夜精品久久久久久久无码软件| 亚洲午夜国产精品无卡| 亚洲天堂网视频| 免费一级毛片在线播放傲雪网| 欧美精品啪啪一区二区三区| 欧美亚洲国产视频| 国产特级毛片aaaaaa| 欧美另类精品一区二区三区| 成人免费视频一区| 国产成人无码Av在线播放无广告| 亚洲另类国产欧美一区二区| 黄色一级视频欧美| 国产精品尤物在线| 日韩精品一区二区三区大桥未久 | 欧美亚洲国产精品久久蜜芽| 97在线视频免费观看| 欧美激情视频一区二区三区免费| 精品夜恋影院亚洲欧洲| 精品色综合| 噜噜噜久久| 国产毛片不卡| 伊人丁香五月天久久综合| 亚洲午夜天堂| a色毛片免费视频| 国产一线在线| 精品国产黑色丝袜高跟鞋| 毛片手机在线看| www.国产福利| 国产精品成人久久| 国产成人无码AV在线播放动漫| 中文字幕首页系列人妻| 国产亚洲精品97在线观看| 精品伊人久久久久7777人| 啪啪永久免费av| 首页亚洲国产丝袜长腿综合| 成人毛片免费观看| 伊人久久大香线蕉成人综合网| 亚洲国产成人久久77| 亚洲色无码专线精品观看| 99久久无色码中文字幕| 亚洲另类国产欧美一区二区| 特级毛片免费视频| 久久综合色播五月男人的天堂| 国产精品白浆在线播放| 综合色天天| 91精品免费久久久| 国产成人h在线观看网站站| 免费日韩在线视频| 欧美一区精品| 99视频全部免费| 亚洲资源站av无码网址| 国产对白刺激真实精品91| 91精品视频网站| 99久久精品免费观看国产| 日韩第九页| 国产哺乳奶水91在线播放| 91在线日韩在线播放| 欧美yw精品日本国产精品| 亚洲欧美h| 在线国产欧美| 亚洲二区视频| 亚洲欧洲自拍拍偷午夜色| 在线观看国产精品一区| 国产免费黄| 国产99视频精品免费观看9e| 久久99精品久久久大学生| 激情在线网| 免费人成视网站在线不卡| 国内老司机精品视频在线播出| 免费无码网站| 人妻少妇乱子伦精品无码专区毛片| 69国产精品视频免费|