成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

程序員租房妙招,爬一個好房

開發 架構
春節過后回京,本想好好休息兩天結果家里迎來了不速之客——老鼠。最后通過一系列的操作終于成功捕獲一家 8 口,這個過程筆者就不做多描述了。

背景

春節過后回京,本想好好休息兩天結果家里迎來了不速之客——老鼠。***通過一系列的操作終于成功捕獲一家 8 口,這個過程筆者就不做多描述了。由于此次捕鼠事件留下陰影決定搬離。和媳婦開始尋找合適的房源,這還只是一個開始;之后看好房子(房子還在配置中)跟管家約定好釋放當日簽約;和媳婦兩臺手機兩臺電腦搶房子結果還是失之交臂。就算是雙十一也不過如此吧!

之后繼續找房發現基于小區搜索房源結果很不準確(用地鐵站能過濾出來的,但直接用小區名就是搜不全),再加上想對當前市場房源有一個更清晰的了解,于是便有了一個想法——能否通過爬蟲自己做個檢索來找房子。

[[259363]]

開始

通過爬蟲自己做個檢索來找房子,有了這個想法后就試著做一下,首先有一個大概思路:

  • 寫一個爬蟲程序,盡可能解析出房子相關信息作為字段存儲。
  • 將數據存放在 ES(Elasticsearch)中便于查找。
  • 使用 kibana 實現查詢和分析,因其作為 ELK 經典組件,在查詢分析上的強大優勢不再多言。

需開發的爬蟲可分為如下模塊:

  • 控制模塊:作為起始開關和任務管理
  • 抓取模塊:輸入一個網址,輸出網頁內容
  • 解析模塊:接收一段內容,輸出有價值的字段信息,以及下一頁等更多待解析的任務
  • 存儲模塊:簡單的做一個 map 進行運行時去重,然后將信息寫入 ES

整個架構和其他爬蟲基本一樣,但自如為防止爬蟲,搜索結果最多顯示50頁,對應辦法就是遍歷重要的查詢參數,比如城市、地鐵站、房子類型等。于是解析模塊的順序大概是:

1. 城市列表解析器,用來解析不同城市(當然這里只需要北京)

2. 地鐵站解析器,用來解析出不同的地鐵站

3. 房屋列表解析器,用來解析每一頁的房屋列表和下一頁待解析的任務

4. 房屋詳情解析器,用來解析房屋的詳細信息,如朝向、面積、戶型、樓層、陽臺、室友等

這里需要注意幾點:

1. 爬蟲使用 golang,它本身沒有解析庫,可以用第三方的 css 樣式選擇器、xpath,也完全可以用正則搞定,這里主要用正則實現,部分地方試用了下 css 選擇器。

2. 部分房間信息如地鐵站、地鐵線路、所屬 url、陽臺、裝修風格在房屋詳情中不容易提取,可以在上一級頁面如房屋列表中獲得。

3. 房租價格做了反爬蟲處理,不容易獲得,具體是價格為不同圖片拼接,這些圖片根據一個靜態隨機頁面搭配 offset 進行判斷,然后通過 ocr 進行基本圖片識別就能得到。

在上一級的網頁源碼中可以發現對應的原始圖片和序號,這樣就很簡單了。

接下來是圖片識別,需要用到一個利器——tesseract(https://github.com/tesseract-ocr/tesseract/wiki)

盡管有這么個神器,但解析成功率依然不能保證 100%,尤其是在沒有訓練的情況下,因此就需要像上面代碼中那樣,在短期內想提高效率就添加部分人工識別的代碼,并降低重復工作,也能基本滿足需求。

接下來是寫入存儲,這里為快捷實現,我們用 docker 在本機運行 es 和kibana,如下:

需要注意:盡量使用高版本,5.6 以后的 es 鏡像版本中都默認安裝了 x-pack 并激活了基礎版本的 license(即免費使用基礎功能,在這里也夠了)golang 對接 ES 可以使用官方的 client。代碼如:

注意上面的 setSniff=false,如果不加會有如下報錯:

在docker中運行es時,默認啟動 sniffing 模式,es自動查找節點, 要確保 Elasticsearch 返回可從容器外部訪問的 IP 地址。

解決方式為關閉 sniffing 或者配置 es 返回的主機地址,參考https://github.com/olivere/elastic/wiki/Docker

1. 配置 elasticsearch

  • 將 network.publish_host 和 network.bind_host 配置為可從容器外部訪問的地址
  • 配置network.host (不用再單獨配置network.bind_host 和 network.publish_host)

2. 禁用 sniffing

elastic.SetSniff(false)

最終,經過一番嘗試,登錄 kibana 開始新的探索:

比如,基于多條地鐵線進行房源查找,甚至可以排除部分職業的室友,舉個栗子,排除下自己。

然后在 kibana 的 Visualize 中進行更多的分析:

比如最貴的地鐵站周邊和地鐵線周邊,2號線因為是內環地鐵線路,均價毫無爭議***。地鐵站圓明園算是景區之外,中關村最貴也合情理。整租方面因為雙井附近有一些豪宅而略高,其他地區基本在9500左右。

市場行情:

整租6-7k最多,合租費用上2-3k則是***頻,其次是3-4k,而我也總算知道為什么之前的房源那么搶手了,因為它比當地均價低了500多;而1500以下的為數不多的幾個都在遠郊。

房源的情況:

可以看到大部分自如客住的都在20平內,占比約76%,如果細分的話可以看到10-15是***比的,而10號地鐵線的房源最多。

房源最多集中在頂樓,這些多數是沒電梯的老樓;而帶獨立陽臺的,則只有20%;而從朝向上看,雖然南的比例***,但非南的加起來也遠超它,可見大多數人都和陽光處的不太好。

從租客信息可知,男女比例相差不多,但星座上天秤座卻比射手多好些。而從職業上看,IT行業(開發研發、測試、運維)占比遠比其他要高,而他們又最多分布在8號線和13號線(西二旗表示很淡定自如)。

關于季節:

2月份是過去一年的高峰期,大量的人合同到期,也有大量的人重新簽約,這里涉及到無數個小家的遷入和遷出,無數個打包和解包,無數個的——重新開始!

經過一番折騰,新房也找好了,等著過陣子搬過去??偨Y之后,生活還是要繼續,也許還會在新家遇到老鼠,也一定會再隨著生活變遷而搬到其他地方,但在這次“折騰”里,我得以用另一個視角去看自己,看待我和群體的關系,看待我們和這座城市的關系,以便更好的選擇我們的未來。

注意:

以上只是個人基于部分數據所得做的簡單分析,無法保證精確。

爬蟲應在不對目標服務器產生較大干擾的情況下操作,可通過channel+time.Tick 進行主動限速。

責任編輯:武曉燕 來源: 51reboot運維開發
相關推薦

2020-02-22 21:51:43

程序員Microsoft SServerSQL

2020-10-05 21:13:37

程序員技能開發者

2014-01-06 09:33:32

程序員管理

2021-07-01 07:43:41

項目程序員代碼

2015-06-08 10:48:39

程序員程序員自白

2011-02-14 13:05:17

PythonWeb

2015-06-16 10:31:36

程序員

2012-11-28 13:25:27

程序員

2023-12-26 18:47:32

2020-07-10 09:55:15

程序員技能開發者

2019-11-07 15:30:00

EmacsIDE

2015-08-24 10:07:13

程序員bug

2020-01-06 09:53:29

程序員

2017-02-05 10:21:10

程序員好問題

2009-03-18 13:12:36

程序員技術IT行業

2010-10-18 11:39:41

程序員

2015-05-13 14:06:03

程序員糟糕的程序員

2016-03-23 10:18:47

女程序員

2009-02-12 15:07:57

程序員創業經驗

2019-04-22 10:25:52

程序員技術職場
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚州精品天堂中文字幕 | 99国产精品久久久久 | 在线看国产| 91精品国产高清久久久久久久久 | 激情一区二区三区 | 久久国产秒 | 国产视频福利 | 国产精品久久久久久久久 | 午夜寂寞福利视频 | 亚洲高清视频一区 | avav在线看| 日本精品免费在线观看 | 亚洲aⅴ | 在线成人av | 欧美日韩久| 美国a级毛片免费视频 | 黄色网址在线播放 | 天天搞天天操 | 黄网站在线观看 | 天天夜碰日日摸日日澡 | 成人不卡视频 | 91国产视频在线观看 | 在线日韩 | h视频在线观看免费 | 久久国产精品免费视频 | 成人视屏在线观看 | 二区精品| 成人1区2区 | 久久九九色 | 国产乱码精品一区二区三区av | 福利视频三区 | 久久亚洲精品视频 | 欧美精品a∨在线观看不卡 国产精品久久国产精品 | 精品久久伊人 | 精品欧美一区二区三区久久久 | 黄色网址av| www.国产.com| 亚洲精品66 | 久久99成人 | 日本成人免费网站 | 日韩一区二区三区在线观看视频 |