Py爬蟲北京租房價格資料

2021-08-28 07:33:04 字數 1679 閱讀 7492

最近北京的租房市場掀起了軒然大波,作為即將租房的人就順便練手下爬蟲北京的租房**。爬房價已經有很多人在做了,但我還是分享些不同思路給大家。

仔細看了下這三家**,自如在**頁面處用的是圖的顯示,鏈家和蛋殼都是字元,如若要爬自如就需要用影象識別的庫,當然數字只有0-9,不需要影象識別那麼高階只需要匹配0-9與頁面的background-position。

如-240px對應數字0 

background-position:-240px ----0

background-position:-30px ----1

初級爬蟲當然是竟可能簡單了,所以自如排除。鏈家和蛋殼在網頁結構上差別不大,不過蛋殼不顯示頁面數量,你不知道什麼時候是最後一頁,這樣很容易出錯

進入正題開始爬蟲,鑑於資料比較少不超過一萬,沒必要在去配置scrapy框架的,如果你想也可啊。

這裡我選的維度是:標題、**、戶型、面積、瀏覽熱度。(做完我才發現其實房齡這個引數也很有趣,有需要的朋友可以加這個分析)。

流程思路:

獲取北京租房頁面(下,分割槽的連線,如昌平,朝陽。。。。。。

獲取分割槽的最大頁數,構造每頁的連線位址

解析每一頁,這裡我用的是xpath沒有用煲湯soup,谷歌瀏覽器的xpath工具十分便捷,開發工具定位所需要的網頁元素,右鍵即可複製出xpath

最後儲存到csv

詳細**及說明:

import requests

#可以設定時間不要訪問過於頻繁,或者做乙個**,博主找了幾個都不太穩定,在資料不大的情況下不偽裝ip那就用time訪問慢一丟丟了

import time

from lxml import etree

#json在解析當前頁面有多少房子時用,每個區的**最後一頁數量是不定的

import json

import csv

#獲取request頁面,偽裝瀏覽器

def response(url):

headers = ,{},{},{},{},{}\n".format(area,title,price,room_type,square,people_flow))

#print('當前為第'+str(i)+'of30')

except exception as e:

print( ' connecting error, retrying.....')

time.sleep(10)

return get_house_info(area, url)

def main():

url = ''

get_area(url)

if __name__ == '__main__':

main()

爬完的結果:

下一步就是資料分析了,待我這兩天看完pandas

北京租房房價

明光橋 學院南路15號院1號樓廳隔3000 安翔裡 安翔南里10號樓主臥陽台2800 次臥2500 次臥2500 上地 上地621小區次臥2300 隔明1600 朝陽北路 珠 馬嘉園107號樓主臥獨衛3700 二里莊 清華東路9號院次臥2900 學院路 學知園3號樓明隔2500 暗隔1500 西三旗...

北京租房心得

節後來京,找了一天房。座標沙河,沒有別的原因,就因為便宜。是否應叫做沙河租房心得,不重要了 意向是一居室或者大開間,別問為什麼不合租,5 6環之間,整租方便。先後自己找了好久,單身公寓確實是有可能不需要中介。但凡想要個小區房,那你就得找中介了。2000多的小一居和小3000的大一居,選了後者,不是有...

在北京租房的歷史

在帝都八年多,住過城裡小區,住過城郊村莊。現流水賬記錄一下。04年底去北京實習,住的公司幫租的小區房,在中關村東邊的知春裡東裡,房租乙個月2000,四個人,每人500元。那時實習費乙個月也只有1000,交了房租只能勉強夠吃飯。05年畢業後和同學找房,被中介騙了400元。當時人多有六個人,需要找兩居的...