相信对与不少在北上广深飘着的年轻人来说,是选择继续留在大城市拼搏呢还是回到小城市发展,一直都困扰着他们。毕竟像网络上说的那样,“异乡容不下肉身,故乡装不下灵魂”。那么退居到二三线找一个城市安居乐业,房子首先是要考虑解决的问题,不同城市的购房成本也是不一样的。不过从总体上来看,新一线或二三线城市的购房成本比在一线城市中购房要低不少,而且有不少新一线城市是很适合居住的城市,今天小编以一个爬虫工作者通过获取数据分析来为大家分析一下,逃离北上广之后,还有哪些城市适合年轻人定居。
需求:根据输入的城市名获取该城市的房价信息,对获得的数据进行简单的分析。
目标网站:lianjia.com/
实现思路:像链家这样的网站一般反爬策略是做的比较好的,并且获取的数据也不少,所以在访问过程中是需要加上代理ip的。本文使用了最简单的爬虫动态转发代理。实现代码如下:
#! -*- encoding:utf-8 -*-
import base64
import sys
import random
PY3 = sys.version_info[0] >= 3
def base64ify(bytes_or_str):
if PY3 and isinstance(bytes_or_str, str):
input_bytes = bytes_or_str.encode('utf8')
else:
input_bytes = bytes_or_str
output_bytes = base64.urlsafe_b64encode(input_bytes)
if PY3:
return output_bytes.decode('ascii')
else:
return output_bytes
class ProxyMiddleware(object):
def process_request(self, request, spider):
# 代理服务器(产品官网 www.16yun.cn)
proxyHost = "t.16yun.cn"
proxyPort = "31111"
# 代理验证信息
proxyUser = "username"
proxyPass = "password"
request.meta['proxy'] = "http://{0}:{1}".format(proxyHost,proxyPort)
# 添加验证头
encoded_user_pass = base64ify(proxyUser + ":" + proxyPass)
request.headers['Proxy-Authorization'] = 'Basic ' + encoded_user_pass
# 设置IP切换头(根据需求)
tunnel = random.randint(1,10000)
request.headers['Proxy-Tunnel'] = str(tunnel)
复制代码
通过获取到的数据分统计了一下全国主要一些城市的购房成本,其中长沙、沈阳、重庆、杭州的房价收入比相对偏低,相对来说要轻松些,当然除了房子本身之外,一个城市的各种设施等因素也是不少年轻人着重考虑的,所以考虑定居一城市也是需要从多方面进行考量的。