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