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

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

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

李 紅

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

一、準備工作

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

beautif ulsoup。

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

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

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

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結(jié)構(gòu)。以鏈家為例,使用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進行格式轉(zhuǎn)化。設計house_item(url),進行單個房屋信息抓起并存儲,主要使用soup的find函數(shù)進行標簽定位爬取數(shù)據(jù),房屋信息中標題和小區(qū)在div標簽中的內(nèi)嵌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保存成二維表結(jié)構(gòu)。并使用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平米,樓層信息中我們只關(guān)注樓層信息,但是卻獲得到了完整的樓層信息以及建筑時間等。此時我們就需要進行數(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文件中讀取出來生成表結(jié)構(gòu)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ū)排名。由于篇幅有限,其他圖不在此展示。

四、總結(jié)

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

主站蜘蛛池模板: 国产成人一区| 中国国产高清免费AV片| 国产欧美日韩一区二区视频在线| 国产第一页第二页| 亚洲无卡视频| 午夜爽爽视频| 国产精品无码在线看| 色男人的天堂久久综合| 区国产精品搜索视频| 91欧美在线| 久久香蕉国产线看观看精品蕉| 亚洲综合色吧| 喷潮白浆直流在线播放| 日韩免费成人| 国产91在线免费视频| 91视频免费观看网站| 99热国产这里只有精品9九| 婷婷综合亚洲| 亚洲色图欧美视频| 伊人中文网| 二级特黄绝大片免费视频大片| 91精品视频播放| 国产精品亚洲专区一区| 日本不卡在线| 国产精品刺激对白在线| 欧美第九页| 免费国产高清精品一区在线| 欧美亚洲中文精品三区| 一边摸一边做爽的视频17国产| 国产成人精品高清不卡在线 | 国产精品熟女亚洲AV麻豆| 夜色爽爽影院18禁妓女影院| 免费一级成人毛片| 国产青榴视频| 性欧美久久| 无码内射中文字幕岛国片| 高清精品美女在线播放| 成人亚洲视频| 无码 在线 在线| 香港一级毛片免费看| 国产成人a在线观看视频| 日韩欧美中文字幕在线韩免费| 国产视频入口| 国产香蕉97碰碰视频VA碰碰看| 免费一级α片在线观看| 91久久夜色精品| 无码丝袜人妻| 国产精品亚洲va在线观看| 成人综合在线观看| 亚洲中文字幕av无码区| 98精品全国免费观看视频| 制服丝袜 91视频| 中文字幕久久亚洲一区| 三区在线视频| 国产第一页屁屁影院| 99国产在线视频| 青青草原国产av福利网站| 99在线视频免费| 亚洲精品自产拍在线观看APP| 国产精品yjizz视频网一二区| 亚洲国产第一区二区香蕉| 免费人成在线观看视频色| 欧美国产日本高清不卡| 免费人成在线观看视频色| julia中文字幕久久亚洲| 啪啪永久免费av| 国产精品短篇二区| 亚洲综合色区在线播放2019| 国产激情无码一区二区APP | 婷婷亚洲综合五月天在线| 亚洲中文字幕97久久精品少妇| 中文字幕亚洲专区第19页| 欧美三级不卡在线观看视频| 四虎成人在线视频| 日韩在线第三页| 亚欧美国产综合| 被公侵犯人妻少妇一区二区三区| 欧美伦理一区| 亚洲一区二区黄色| 亚洲女同一区二区| 亚洲国产成熟视频在线多多| 亚州AV秘 一区二区三区|