高德API+Python幫你解決租房問(wèn)題
項(xiàng)目簡(jiǎn)介:編寫(xiě)Python腳本爬取某租房網(wǎng)站的房源信息,利用高德的 js API 在地圖上標(biāo)出房源地點(diǎn),劃出距離工作地點(diǎn)1小時(shí)內(nèi)可到達(dá)的范圍,附上公交路徑規(guī)劃功能查看不同路徑的用時(shí)。
本教程由ekCit發(fā)布在實(shí)驗(yàn)樓,完整教程及在線練習(xí)地址:高德API+Python解決租房問(wèn)題,可以直接在教程中下載代碼使用demo。
一、項(xiàng)目介紹
1. 項(xiàng)目背景
來(lái)自一段租房血淚史(夸張):事情是這樣的,筆者是接著念大四準(zhǔn)備考研,而室友是應(yīng)屆畢業(yè)在找工作,說(shuō)白了就是都沒(méi)有錢(qián),于是打算合租。因?yàn)楦F所以不可能找有門(mén)店的的中介,只能看看趕集、58、和一些租房APP。期間需要考慮兩個(gè)人的通勤范圍來(lái)選地段,由于對(duì)交通的不熟悉,只有選擇自己附近的較貴的地段,花了很多時(shí)間閱覽趕集或者58里的個(gè)人房源信息,然而個(gè)人房源信息中仍充斥著大量中介,抱著一點(diǎn)希望打了幾個(gè)電話,得到的回答都是這個(gè)價(jià)位根本租不到,再高點(diǎn)也租不到(大都與發(fā)布的房源信息不符)。最后終于還是在宿舍關(guān)閉前一個(gè)星期租到一個(gè)性?xún)r(jià)比還可以的隔斷。畢竟隔斷還是不方便的,所以打算在室友找到工作后換一個(gè)新地方,于是就有了這個(gè)租房腳本和課程。
相信也有不少的應(yīng)屆畢業(yè)生可能會(huì)遭遇同樣的境況,希望這門(mén)課能真的幫到大家,也許不光是在租房子方面。
總結(jié)一下租房難的癥結(jié):
沒(méi)錢(qián)。
小中介發(fā)布的價(jià)位一般都是假的,會(huì)浪費(fèi)你很多時(shí)間。
對(duì)交通路線不熟悉以致于選擇面窄。
如果是多人,得同時(shí)考慮多人的通勤時(shí)間。
本課程將解決的問(wèn)題:
學(xué)習(xí)了技術(shù),增長(zhǎng)了知識(shí),就能找到好工作,找到好工作就能有錢(qián)。
這次選的房源信息來(lái)自58的品牌公寓館,所以沒(méi)有那種小中介,價(jià)位就我和我室友來(lái)說(shuō)可以接受。其實(shí)可以做個(gè)分類(lèi)器過(guò)濾趕集上的中介來(lái)找低價(jià)個(gè)人房源的,有需要的同學(xué)可以試一下。
通勤范圍在地圖上圈出,解決了對(duì)交通路線不熟悉的問(wèn)題
本課程是單人版的,但代碼中只要?jiǎng)h掉一個(gè)語(yǔ)句就能當(dāng)多人用了(但是路徑規(guī)劃的功能是只能給一個(gè)人用)。如果是直接拿來(lái)多人用的話,還是開(kāi)多個(gè)頁(yè)面比較好。
最終效果圖如下:
由于沒(méi)做前端兼容,導(dǎo)致右上角崩了。自用的小工具其實(shí)也不用整多好看,效率第一。
如圖,劃出來(lái)的大片藍(lán)色色塊就是距離工作地點(diǎn)一小時(shí)車(chē)程內(nèi)的區(qū)域。藍(lán)色的標(biāo)記就是房源,點(diǎn)擊后會(huì)自動(dòng)給出路徑規(guī)劃和房源地址。紅色標(biāo)記(不是"終")是工作地點(diǎn),在圖里被擋住了。工作地點(diǎn)的輸入框有自動(dòng)補(bǔ)完的功能,也是很方便的。至于房源文件我們會(huì)通過(guò)編寫(xiě)Python腳本在抓取房源信息后生成。
2. 知識(shí)點(diǎn)
本課程項(xiàng)目完成過(guò)程中,我們將學(xué)習(xí):
- requests、BeautifulSoup、csv 等庫(kù)的簡(jiǎn)單使用
 - 高德地圖 Javascript API 的使用
 
二、實(shí)驗(yàn)環(huán)境
打開(kāi)終端,進(jìn)入 Code 目錄,創(chuàng)建 rent_proj 文件夾, 并將其作為我們的工作目錄。
- $ cd Code
 - $ mkdir rent_proj && cd rent_proj
 
安裝需要的庫(kù):
- $ sudo apt-get install python-bs4
 
三、實(shí)驗(yàn)原理
實(shí)驗(yàn)中會(huì)用到三個(gè)文件:crawl.py,rent.csv與index.html,其中rent.csv由crawl.py生成,是房源文件。crawl.py是一個(gè)非常簡(jiǎn)單的爬取網(wǎng)頁(yè)的腳本。index.html是最重要的顯示地圖的部分。實(shí)現(xiàn)的流程大致如下:
我為什么不把js代碼和css代碼從index.html中分出來(lái)呢,寫(xiě)腳本怎么順手怎么來(lái)就好。
四、效果演示
首先選擇工作地點(diǎn),劃出了一小時(shí)內(nèi)的通勤范圍:
北京堵車(chē)太猖狂,可能還是地鐵保險(xiǎn):
導(dǎo)入房源文件:
選擇一處房源,會(huì)自動(dòng)幫你規(guī)劃路徑:
選中房源地址跳轉(zhuǎn)到目標(biāo)頁(yè)面:
五、實(shí)驗(yàn)步驟
本項(xiàng)目的詳細(xì)教程、完整代碼及demo測(cè)試,可在實(shí)驗(yàn)樓中查看并在線完成,立即【開(kāi)始實(shí)驗(yàn)】
更多Python經(jīng)典項(xiàng)目:Python全部-課程






















 
 
 




 
 
 
 