房屋价格数据采集与分析
随着互联网的发展,可供分析的信息越来越多,利用互联网上的信息来对生活中的问题做一些简单的研究分析,变得越来越便利了。本文就从数据采集、数据清洗、数据分析与可视化三部分来看看新的一年里房市的一些问题。
数据采集:
数据采集即从网页上采集我们需要的指定信息,一般使用爬虫实现。当前开源的爬虫非常多,处于简便及学习的目的,在此使用python的urllib2库模拟http访问网页,并BeautifulSoup解析网页获取指定的字段信息。本人获取的链家网上的新房和二手房数据,先来看看原始网页的结构:
首先是URL,不管是新房还是二手房,链家网的房产数据都是以列表的方式存在,比较容易获取,如下图:
其中包含的信息有楼盘名称、地址、价格等信息,回到原始网页,看看在html中,这些信息都在什么地方,如下图:
值得注意的是,原始的html为了节省传输带宽一般是经过压缩的,不太方便分析,可以借助一些html格式化工具进行处理再分析。知道这些信息后,就可以模拟http请求来拉取html网页并使用BeautifulSoup提取指定的字段了。
fw = open("./chengdu.txt","a ")
index = [i 1
for i in range(32)]
for pa in
index:
try:
if pa==1:
url = "http://cd.fang.lianjia.com/loupan/"
else:
url = "http://cd.fang.lianjia.com/loupan/pg%d/"%(pa)
print "request:" url
req = urllib2.Request( url )
req.add_header("User-Agent","Mozilla/5.0 (Windows NT 6.1; WOW64)
AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101
Safari/537.36")
req.add_header("Accept","*/*")
req.add_header("Accept-Language","zh-CN,zh;q=0.8")
data = urllib2.urlopen( req )
res = data.read()
#print res
#res = res.replace(" ","")
#print res
#objects = demjson.decode(res)
soup = BeautifulSoup(res)