成都房价现在多少?和北京差距很大吗?Python爬取了四万套房源!

大数据 数据分析
作为一家技术人员,决定用技术解决这个疑问。我们用Python爬取了贝壳网上4万多套的成都在售房源,告诉你最真实的成都房价。

[[244218]]

成都房价现在多少?和北京差距很大吗?Pytho爬取了四万套房源!

作为一个技术人员,决定用技术解决这个疑问。我们用Python爬取了贝壳网上4万多套的成都在售房源,告诉你最真实的成都房价。 

爬虫工作原理

在贝壳网上,成都的在售房源按照区域与地铁线这两个方式做了划分,为了更好的了解各区域房价,我们选择了抓取各区域板块的数据。然后再爬取了各板块内所有的房源数据,除了价格外,还有户型、朝向、电梯、楼层等信息。

成都房价现在多少?和北京差距很大吗?Pytho爬取了四万套房源!

所有信息都以Excel形式导出,再通过分析计算得出了成都的房价水平。

房源数据分析

本次共爬取49328套成都二手房信息,剔除掉无效的车位信息后,共计收集了有效信息46980条。

成都房价现在多少?和北京差距很大吗?Pytho爬取了四万套房源!

值得注意的是,金牛区不仅仅是在售二手房最多,人口老龄化问题也是几大区里比较严重的。

各区域平均房价如下图(单位:元/平米)  

成都房价现在多少?和北京差距很大吗?Pytho爬取了四万套房源!

高新区与天府新区这两大功能区因近年成都的“南拓”政策房价直线上涨,均价纷纷冲破1.8万元每平米,几乎就要彻底超越传统的五大主城区了。

成都单价最贵十大豪宅: 

成都房价现在多少?和北京差距很大吗?Pytho爬取了四万套房源! 

成都房价现在多少?和北京差距很大吗?Pytho爬取了四万套房源!

文末知识点摘要:Python——Cookie保存到本地

方法一:

结合cookielib及urllib2,Python2时期比较常用的方法,年代比较久远了。个人觉得太麻烦,改用requests.

需要注意的是cookielib在python3中已经改成了http.cookiejar

保存cookie

成都房价现在多少?和北京差距很大吗?Pytho爬取了四万套房源!

方法二:

使用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实例。 

成都房价现在多少?和北京差距很大吗?Pytho爬取了四万套房源! 

成都房价现在多少?和北京差距很大吗?Pytho爬取了四万套房源!

方法三:

将cookie字典弄成字典形式然后pickle或者json写入文件中

存储cookie

  1. 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

  1. 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时给的文件名

成都房价现在多少?和北京差距很大吗?Pytho爬取了四万套房源!

save()方法的两个重要参数 

  1. ignore_discard: save even cookies set to be discarded.  
  2. 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。其中他们的关系如下: 

成都房价现在多少?和北京差距很大吗?Pytho爬取了四万套房源!

责任编辑:未丽燕 来源: 简书
相关推荐

2013-10-17 10:31:37

Windows XPWindows 8

2021-01-03 14:45:50

数字货币支付宝现金

2018-10-22 13:10:43

分析Python房价

2018-01-23 08:46:19

Python数据分析

2022-08-30 08:23:52

Python房源数据

2024-07-08 08:22:09

2009-06-22 10:59:09

IT

2020-07-14 10:19:29

Python 开发运维

2019-07-23 16:40:07

北京电脑苹果

2018-08-21 21:13:32

爬虫Python住房

2012-04-18 13:00:23

宽带

2017-09-17 10:05:20

Python景点国庆

2020-06-08 18:18:56

高德地图百度地图区别

2015-11-04 09:56:43

北京房价数据

2014-04-16 14:28:21

QCon2014

2019-11-28 09:23:17

Python机器学习数据库

2011-08-25 09:45:37

2018-08-15 08:52:49

爬虫出行城市数据

2018-08-27 09:39:33

租房数据北漂

2016-08-12 09:28:52

APIPythonLinux
点赞
收藏

51CTO技术栈公众号