返回顶部
首页 > 资讯 > 后端开发 > Python >我爬了链家青岛市北3000套二手房得出一
  • 828
分享到

我爬了链家青岛市北3000套二手房得出一

青岛市二手房爬了 2023-01-30 22:01:48 828人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

前言 青岛的房价这两年翻了一番,举个栗子,如果你在2016年在市区买了100万的房子,2018年价值200万,净增100万;如果你2016年没有买这100万的房子,2018年买房将多付100万,机会成本100万。而这100万可能是青岛白

前言

青岛的房价这两年翻了一番,举个栗子,如果你在2016年在市区买了100万的房子,2018年价值200万,净增100万;如果你2016年没有买这100万的房子,2018年买房将多付100万,机会成本100万。而这100万可能是青岛白领不吃不喝十年的收入。

自2018年第二季度起,限价限购限售与金融市场去杠杆两大行政令双管齐下,包括青岛在内的一二线城市房价明显遇冷,成交寥寥,投资客杳无踪影,刚需驻足观望,着急出售的不得不主动降价,价格普遍下跌,三四线城市也受到不同程度的影响。根据博主的卖房经历,初始挂牌价同小区同期房最低,依然许久无人问津,在中介的提议下骤降X%才出手。但是,从长期来看,除非政府放弃干预,实行完全的市场经济模式,否则一二线城市的房价跌幅不会太大,尤其青岛,各地铁线路的开通将再次拉高沿线房产价格。对于刚需群体而言,买房的主要目的不是投资,而是居住。购房时间越晚,成本越高。

爬取数据

博主最近有买房的计划,房价稳中下跌,不失为一个买房好机会。于是,我这个之前不懂房的人,硬着头皮用 python 爬了些数据分析了一丢丢。

创建基本的数据库

CREATE TABLE `house` (
   `id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
   `url` varchar(20) NOT NULL COMMENT '二手房地址',
   `housing_estate` varchar(20) NOT NULL COMMENT '小区',
   `position` varchar(20) NOT NULL COMMENT '位置',
   `square_metre` decimal(10,2) NOT NULL COMMENT '大小 平米',
   `unit_Price` int(11) NOT NULL COMMENT '单价元 基本都是整数',
   `total_price` int(11) NOT NULL COMMENT '单价万元 基本都是整数',
   `follow` int(11) NOT NULL COMMENT '关注量',
   `take_look` int(11) NOT NULL COMMENT '带看量',
   `pub_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '发布日期',
   PRIMARY KEY (`url`),
   UNIQUE KEY `id` (`id`)
 ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8

爬取代码:

#coding=utf-8
#!/usr/bin/Python
__author__ = "小柒"
__blog__ = "https://blog.52itstyle.com/"
# 导入requests库
import requests
# 导入文件操作库
import os
import re
import bs4
from bs4 import BeautifulSoup
import sys
from util.Mysql_DBUtils import mysql


# 写入数据库
def write_db(param):
    try:
        sql = "insert into house (url,housing_estate,position,square_metre,unit_price,total_price,follow,take_look,pub_date) "
        sql = sql + "VALUES(%(url)s,%(housing_estate)s, %(position)s,%(square_metre)s,"
        sql = sql + "%(unit_price)s,%(total_price)s,%(follow)s,%(take_look)s,%(pub_date)s)"
        mysql.insert(sql, param)
    except Exception as e:
        print(e)


# 主方法
def main():
    # 给请求指定一个请求头来模拟chrome浏览器
    headers = {'User-Agent': 'Mozilla/5.0 (windows NT 10.0; Win64; x64) AppleWEBKit/537.36 (Khtml, like Gecko) Chrome/54.0.2840.99 Safari/537.36'}
    page_max = 100
    for i in range(1, int(page_max) + 1):
        if i == 1:
            house = 'Https://qd.lianjia.com/ershoufang/shibei/'
        else:
            house = 'https://qd.lianjia.com/ershoufang/shibei/pg'+str(i)
        res = requests.get(house, headers=headers)
        soup = BeautifulSoup(res.text, 'html.parser')
        li_max = soup.find('ul', class_='sellListContent').find_all('li')
        for li in li_max:
            try:
                house_param = {}
                #  荣馨苑  | 3室2厅 | 115.91平米 | 南 北 | 毛坯 | 无电梯
                content = li.find('div', class_='houseInfo').text
                content = content.split("|")
                house_param['housing_estate'] = content[0]
                house_param['square_metre'] = re.findall(r'-?\d+\.?\d*e?-?\d*?', content[2])[0]
                # --------------------------------------------------------#
                #  位置 水清沟
                position = li.find('div', class_='positionInfo').find('a').text
                house_param['position'] = position
                # --------------------------------------------------------#
                totalprice = li.find('div', class_='totalPrice').text
                house_param['total_price'] = re.sub("\D", "", totalprice)
                unitprice = li.find('div', class_='unitPrice').text
                house_param['unit_price'] = re.sub("\D", "", unitprice)
                # --------------------------------------------------------#
                # 57人关注 / 共13次带看 / 6个月以前发布
                follow = li.find('div', class_='followInfo').text
                follow = follow.split("/")
                house_param['follow'] = re.sub("\D", "", follow[0])
                house_param['take_look'] = re.sub("\D", "", follow[1])
                # --------------------------------------------------------#
                # 二手房地址
                title_src = li.find('div', class_='title').find('a').attrs['href']
                house_param['url'] = re.sub("\D", "", title_src)
                res = requests.get(title_src, headers=headers)
                soup = BeautifulSoup(res.text, 'html.parser')
                # --------------------------------------------------------#
                # 挂牌时间(重要数据)
                pub_date = soup.find('div', class_='transaction').find_all('li')[0].find_all('span')[1].text
                house_param['pub_date'] = pub_date
                write_db(house_param)
            except Exception as e:
                print(e)
        mysql.end("commit")
    mysql.dispose()


if __name__ == '__main__':
    main()

通过链家网页搜索,青岛市北共找到 5105 套二手房,但是看下分页,有100页,每页30条数据,博主用 Python也只爬下2994条数据。个人侦察能力有限,至今仍未找到被藏起来的两千多套房子。若有知晓内幕者,望不吝赐教,柒某愿闻其详。

分析数据

数据库设计方面,博主目前只关注总价、均价、关注、带看量以及发布时间。

总体概况

总数 均价 均关注 均带看
2994 27721 17 1

我们先来看一下链家提供的青岛市北的二手房价格(成交价)走势:

爬取得到的平均单价与链家统计的挂牌平均单价相差无几,成交单价比挂牌平均单价低3k左右。目前二手房市场交易冷冷清清,部分二手房房主无意出售或者不急于出售,挂牌一两年仍未成交,这里后面会有数据说明。

只有少部分房主出于房产置换或套现等需求,着急出售,因而愿意大幅降价。

受首付难凑,房贷难申,房价下跌,尤其是房产市场前景不明朗等多重因素影响,本就为数不多的准买家持续观望,尽管各中介频繁推荐房源,但是准买家并不为所动。

位置分布

从以上两张图可以很直观地看出二手房集中在几个区域——海云庵、台东、新都心。为何这些区域存在如此多的待售二手房呢?

  • 海云庵:以前属于四方区,后现划分至市北,位置略偏,多层房老旧,还有部分拆迁还建房,高至三十几层,物业管理混乱。原房主出售房产谋求换房改善居住环境。

  • 台东:老市北,典型的开放多层老旧小区,商住混合,人员杂乱,挂牌出售的房产中尤以待拆房居多。

  • 新都心:属于市北新商业区,多为2010年以后的高层电梯房,房子基数大,且此区域配套设施完善,在这个区域投资的炒房客多,挂牌出售以套现。

带看量

带看量为零的房源高达六成,多为同小区房源中单价偏高者,显然,鲜有人问津是此时挂牌出售的大部分房源的现状,准买家不仅不急于购买,看房子也不着急了。或许不仅仅是不着急,而是基于目前家庭经济状况考虑,购房目标转向被限价的新楼盘和价格较低的红岛、黄岛等区域了。

挂牌大于一年未出售的房子:

总数 单均价 均关注 均带看
124 28169 47 0.48

挂牌大于半年未出售的房子:

总数 单均价 均关注 均带看
908 27795 31 0.92

挂牌大于三个月未出售的房子:

总数 单均价 均关注 均带看
2345 27712 20 1.07

在带看量为0或1的房源中,不排除部分炒房客无意出售或者不急于出售,有意高价挂牌,潜移默化地拉高整个小区的房价。

贷款

此次房地产市场遇冷,与贷款利率提高不无关系,房价与房贷利率犹如坐在跷跷板两端,当房价出现下滑迹象时,房贷利率优惠就难觅踪影,而当首套房贷利率有所松动时,房价将进入上升通道。对刚需而言,房价略降并不意味着购房成本降低。房贷利率上浮了百分之二十左右,但房价仅仅是略降而已,如果购房者贷款比例高,房价下降的部分不多于多付的利息,购房总成本并未降低。总而言之,利率高,房价低,对于全款买房的买家来说,成本才是真的低了。

商业贷款贷款额度100万,等额本息还款差距表:

优惠 利率 月供
基准 4.9 5307
九折 4.41 5014
上浮20% 5.88 5919

如果你打算公积金贷款,不要做白日梦了,漫长的申请周期和可怜的额度足以让买卖双方都抓狂。

注:2017年青岛就业人员平均工资出炉 月均5253元。

房产税

至于房产税,还在酝酿提案中,神马时候冲破重重关卡仍未可知。

那么哪些人惧怕房产税?

人群 伤害指数
在中心城市囤积大量住宅的人 ★★★
盲目购买旅游物业、养老地产的人 ★★★★
盲目购买三四线城市郊区、新区住宅的人 ★★★★
加杠杆、超承受能力买多套房的白领 ★★★★
在三四线城市囤积了大量住宅的人 ★★★★★★
手中有多套房、负债率非常高的炒房者 ★★★★★★

主要取决于房产税的具体条款,包括征税比例、起征房产套数、起征面积、异地房产统计、家庭成员统计等诸多因素。

趋势态度

其实扯了这么多,总的来说,房价大概不会继续翻着番地涨,同时,指望购房成本下降也是不现实的。如果你是炒房客,换个市场炒吧;如果你是刚需,看好房子就要尽早下手,不要期待任何人慷慨解囊或赠予。规则认知和运用能力是个体生存的基本能力。

当然,肯定有一些人,斥责现在的年轻人以买房为目标,别无他求。有的是有人帮忙负重,生而无忧,从不为其所困;有的是无欲无求,赡养、抚育与他毫无干系;更多的是想要而不得,迫不得已放弃。房地产自商业化之日起就绑架了太多,下一代的教育、良好的居住环境、货币贬值与资产保值……万事有因果,存在即合理。如果真的要“修正”价值观,洗脑活动需尝试从下一代出生之日开始。

小结

这仅仅房地产市场冰山一角,不具备广泛代表性。但是下面一句话与诸位共勉:买房要趁早,没有条件也要创造条件,哪怕以后你卖了呢!

源码:https://gitee.com/52itstyle/Python/tree/master/Day11

补充一句话:买房请慎重,量力而为,小心经济危机,小心泡沫,更要小心地震。

--结束END--

本文标题: 我爬了链家青岛市北3000套二手房得出一

本文链接: https://lsjlt.com/news/180393.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作