作为一个技术人员,决定用技术解决这个疑问。我们用Python爬取了贝壳网上4万多套的成都在售房源,告诉你最真实的成都房价。
爬虫工作原理
在贝壳网上,成都的在售房源按照区域与地铁线这两个方式做了划分,为了更好的了解各区域房价,我们选择了抓取各区域板块的数据。然后再爬取了各板块内所有的房源数据,除了价格外,还有户型、朝向、电梯、楼层等信息。
所有信息都以Excel形式导出,再通过分析计算得出了成都的房价水平。
房源数据分析
本次共爬取49328套成都二手房信息,剔除掉无效的车位信息后,共计收集了有效信息46980条。
值得注意的是,金牛区不仅仅是在售二手房最多,人口老龄化问题也是几大区里比较严重的。
各区域平均房价如下图(单位:元/平米)
高新区与天府新区这两大功能区因近年成都的“南拓”政策房价直线上涨,均价纷纷冲破1.8万元每平米,几乎就要彻底超越传统的五大主城区了。
成都单价最贵十大豪宅:
文末知识点摘要:Python——Cookie保存到本地
方法一:
结合cookielib及urllib2,Python2时期比较常用的方法,年代比较久远了。个人觉得太麻烦,改用requests.
需要注意的是cookielib在python3中已经改成了http.cookiejar
保存cookie
方法二:
使用requests.cookie
读取cookies
在这里我用的是LWPCookieJar保存在txt文件中,还有个是MozillaCookieJar,都是由FileCookieJar 派生而来,实现了save()方法,而FileCookieJar 没有实现save()
- MozillaCookieJar (filename,delayload=None,policy=None):从FileCookieJar派生而来,创建与Mozilla浏览器 cookies.txt兼容的FileCookieJar实例。
- LWPCookieJar (filename,delayload=None,policy=None):从FileCookieJar派生而来,创建与libwww-perl标准的 Set-Cookie3 文件格式兼容的FileCookieJar实例。
方法三:
将cookie字典弄成字典形式然后pickle或者json写入文件中
存储cookie
- import requests,json,pprints = requests.session()s.headers = {...}a = s.get("https://www.baidu.com")cookies = requests.utils.dict_from_cookiejar(s.cookies)with open(".cook.txt", "w") as fp:json.dump(cookies, fp)pprint.pprint(cookies,width=5)
读取cookie
- with open(".cook.txt", "w") as fp:load_cookies=son.load(fp)session.cookie = requests.utils.cookiejar_from_dict(load_cookies)
方法四:
将requests.cookie设置为LWPCookieJar、或MozillaCookieJar保存session = requests.Session()#创建个 LWPCookieJar对象session.cookies = LWPCookieJar(filename='cook.txt')s.get('https://www.baidu.com/',headers=headers)session.cookies.save(ignore_discard=True, ignore_expires=True)#如果save()时没有写filename参数,则默认为实例化LWPCookieJar时给的文件名
save()方法的两个重要参数
- ignore_discard: save even cookies set to be discarded.
- ignore_expires: save even cookies that have expired.The file is overwritten if it already exists
ignore_discard的意思是即使cookies将被丢弃也将它保存下来,ignore_expires的意思是如果cookies已经过期也将它保存并且文件已存在时将覆盖
总结方法二和方法四可以看出,就是要将cookie转换成然后save()
简单介绍下cookielib模块作用,科普下实现cookie知识
python3中将cookielib模块改为了http.cookiejar cookielib模块的主要作用是提供可存储cookie的对象,以便于与urllib2模块配合使用来访问Internet资源。例如可以利用本模块 的CookieJar类的对象来捕获cookie并在后续连接请求时重新发送。coiokielib模块用到的对象主要有下面几个:CookieJar、 FileCookieJar、MozillaCookieJar、LWPCookieJar。其中他们的关系如下: