Python爬取安居客租房数据,设置排除自己条件以外的数据
本文的文字及圖片來源于網(wǎng)絡(luò),僅供學(xué)習(xí)、交流使用,不具有任何商業(yè)用途,版權(quán)歸原作者所有,如有問題請及時聯(lián)系我們以作處理
以下文章來源于木下學(xué)Python ,作者木下瞳
前言
小編可能準(zhǔn)備去深圳,需要租房子,在網(wǎng)上先查了查,有很多租房軟件,安居客,貝殼等,也向身邊的人問了問,安居客聽到的次數(shù)多一些,于是選擇安居客去查看一些租房信息。
在瀏覽過程中,雖然安居客有過濾標(biāo)簽,按價格,區(qū)域,房型,類型這四個來過濾的,但感覺還是不是理想中的信息,而且特別多,看不過來。
所以小編決定使用 python 爬取上面的數(shù)據(jù),并自己設(shè)置過濾條件,從很多房源中過濾出自己需要的房源,既提高效率,又能找到比較理想的。.
?
?
數(shù)據(jù)獲取
數(shù)據(jù)是爬取安居客的租房,過濾條件設(shè)置價格為 0-2500元/月,這是小編自己理想能接受的范圍,2000 以上偏高但可以先看看:
?
區(qū)域因?yàn)椴惶私饷總€行政區(qū)的范圍,所以不知道每個區(qū)域的距離,只選擇某個區(qū)又太單一了,不能了解整體,所以區(qū)域選擇默認(rèn)的全部標(biāo)簽。
一頁有 60 條數(shù)據(jù),有 50 頁,可以得到 3000 條數(shù)據(jù),這些足夠了,多了也看不過來。
爬蟲的邏輯是不難,從第一頁一直到最后一頁,先爬取每一頁房源鏈接,從爬取房源鏈接中的詳細(xì)信息。
主要爬取標(biāo)題,房屋信息,房屋有的設(shè)施,房源概況:
?
在過程中會遇到兩個問題,其一是字體亂碼,也就是字體反爬了,詳細(xì)信息的數(shù)字都是加密過的:
?
核心代碼如下:
?
?
第二個問題就是會遇到驗(yàn)證碼,可能是點(diǎn)擊字體的,可能是滑塊,很麻煩,所以這個小編是在程序中判斷是否出現(xiàn)驗(yàn)證碼。
出現(xiàn)驗(yàn)證碼程序會輸出提示,手動點(diǎn)擊驗(yàn)證碼后,按回車?yán)^續(xù)爬取,在爬取過程中小編只遇到過一次驗(yàn)證碼。
其他的邏輯比較簡單,感興趣的參考源碼即可。
?數(shù)據(jù)過濾
獲得數(shù)據(jù)就可以自己設(shè)置過濾條件了,因?yàn)樾【幮枰烂織l房源在哪里,先構(gòu)造每條房源的區(qū)域:
?
對每個區(qū)域的房價分布心理有個底,所以以區(qū)域劃分,價格劃分為 (0,500],(500,1000],(1000,1500],(1500,2000],(2500.3000],一次來查看分布,先計(jì)算每個區(qū)每個分布,畫出柱狀圖:
?
?
圖用 pyecharts 畫的,區(qū)域選擇設(shè)置的單選,每次可以查看一個區(qū)域價格分布。
對價格有個底后,來設(shè)置過濾條件,首先小編考慮附近是否有地鐵,在數(shù)據(jù)中【標(biāo)簽】【概況】可以說明。
房源設(shè)備也是小編考慮的有網(wǎng),熱水,洗衣機(jī),空調(diào),衛(wèi)生間,根據(jù)這些關(guān)鍵詞過濾,過濾了 1000 條左右:
?
標(biāo)簽中如果有【號線】代表有地鐵幾號線,那概況中應(yīng)該也會提到地鐵要不然讓人懷疑是騙人的,所以以這兩個進(jìn)行過濾,2000 多條一下就過濾剩下 500 多條:
?
然后小編根據(jù)承受能力,選擇了 1500 以下的房源:
?
過濾后一下剩下 200 多條,還是有點(diǎn)多,現(xiàn)在是包含所有區(qū)域的:
?
最后小編根據(jù)自己的需求,查看了地圖過濾區(qū)域,只選擇了合適的區(qū)域,過濾后自由 84 條數(shù)據(jù),并保存:
?
小編抽取了幾條數(shù)據(jù),點(diǎn)開鏈接,大部分還是都能接受。為了點(diǎn)題,現(xiàn)在的我應(yīng)該表示很傷心
總結(jié)
以上是生活随笔為你收集整理的Python爬取安居客租房数据,设置排除自己条件以外的数据的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: matlab蒙特卡洛求体积
- 下一篇: python离线语音唤醒算法_pytho