数据分析上海长租房市场
- Python数据爬虫
- R语言数据处理
- 上海租房市场分析
目录
用 [TOC]
来生成目录:
前言
不久前,CSDN微信公众号推送了一篇关于北京租房的文章,通过数据分析了链家网中北京租房的情况。本工程汪觉得这个话题非常有意思,加上本就刚刚来到上海,对魔都租房的体验有一番自身的理解,所以想通过数据分析还有个人经历与大家分享交流。
[附:北京房租大涨?6个维度,数万条数据帮你揭穿 作者:丁彦军]
链家数据获取(Python)
数据爬虫的方法上述文章已经详细介绍,代码附在下面,在此仅简略描述
Python的几package可以快速的扫描网页,并提取关键信息数据,这段script运行过程如下:
1. 选定根url进行搜索 (https://sh.lianjia.com/zufang)
2. 选择区域(浦东、闵行等)
3. 选定搜索页面(1,2,3…)
4. 提取关键信息(房租、面积、朝向等)
此代码有一处error,搜索最后一个区的时候会发生connection error,必须手动终止程序,sorry~
# -*- coding: utf-8 -*-
"""
Created on Sun Aug 26 17:37:24 2018
@author: sxl740
"""
import requests
import time
import re
from lxml import etree
# 获取某市区域的所有链接
def get_areas(url):
print('start grabing areas')
headers = {
'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.108 Safari/537.36'}
resposne = requests.get(url, headers=headers)
content = etree.HTML(resposne.text)
areas = content.xpath("//dd[@data-index = '0']//div[@class='option-list']/a/text()")
areas_link = content.xpath("//dd[@data-index = '0']//div[@class='option-list']/a/@href")
for i in range(1,len(areas)):
area = areas[i]
area_link = areas_link[i]
link = 'https://sh.lianjia.com' + area_link
print("开始抓取页面")
get_pages(area, link)
#通过获取某一区域的页数,来拼接某一页的链接
def get_pages(area,area_link):
headers = {
'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.108 Safari/537.36'}
resposne = requests.get(area_link, headers=headers)
pages = int(re.findall("page-data=\'{\"totalPage\":(\d+),\"curPage\"", resposne.text)[0])
print("这个区域有" + str(pages) + "页")
for pa