python爬虫刨北上广深的房价来看看

通过Python爬虫获取链家网上北上广深杭五个城市的二手房单价,尽管代码简单,但揭示了房价现状。结果显示,广州是这些城市中上车成本最低的,其均价甚至低于二线城市杭州。
摘要由CSDN通过智能技术生成

2019年过去了,突然想看看外界一直在说的房价跌跌跌,到底跌成了啥样子,于是,花了点时间,把链家上北上广深杭这几个热门城市的二手房单价弄下来看看。

直接上代码了

(临近过年,懒了许多,代码写得很简单,各位看官可以跳到最后直接看房价情况即可)

import requests
from bs4 import BeautifulSoup
import pandas as pd
import time

#把常用的定义成2个函数方便使用
def get_html(url):
    headers={'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36'}
    res = requests.get(url,headers = headers)
    code = res.status_code
    res.encoding = 'utf-8'
    soup = BeautifulSoup(res.text,'lxml')
    return soup,code

def get_data(soup,list_price):
    items = soup.select('ul[class="sellListContent"] div[class="priceInfo"]')
    #print(items)
    for item in items:
        try:
            item.text
            try:
                list_price.append(item.select('div[class="unitPrice"]')[0].text[2:-4])
            except:
                continue
        except:
            continue

#广州
list_price = []
list_position = []
url1 = 'https://gz.lianjia.com/ershoufang/'
a = ['tianhe','yuexiu','liwan','haizhu','panyu','baiyun','huangpugz','conghua','zengcheng','huadou','nansha']
b = [100,100,100,100,100,100,100,47,100,100,69]
for i in range(0,11):
    url2 = url1+a[i]
    print("开始爬取"+a[i])
    time.sleep(3.23422) #这里的暂停可要可不要,我比较善良,爬一个区就让它休息一下
    for j in range(1,b[i]+1):
        url = url2+'/pg%d/'%j
        #print(url)
        soup,code = get_html(url)
        get_data(soup,list_price)
        list_position = list_position + ([a[i]]*(len(list_price)-len(list_position)))
        print('爬取完成第%d页'%j)
        time.sleep(0.00593)

df = pd.DataFrame()
df['价格'] = list_price
df['区域'] = list_position


df['价格'] = df['价格'].astype(int)
print("全市均价:",df['价格'].mean())
print(df.groupby('区域')['价格'].mean().sort_values(ascending=False))

代码里我偷懒了好多地方,各个城市我都是直接按行政区划分取数了,代码里的a就是区域,b就是各个区域对应的页数(直接一个一个码上去了,没有去写获取),但是链家网有一个限制,一个选项只能展示100页(3000套房)的房源情况,所以有些区域本来有好几千套房的,但是我最多也就取了3000套(不管了,反正只是要看一下区域单价,只能取3000套就当是抽样了)。

如果是要完整获取所有房源的单价,可以先获取城市下各个区域的href(下图1),然后进行url拼接,再到各个区域中取出各个小板块的href(下图2),最终拼接成各个板块的url,最后一步,根据各个板块url最下方的页码栏,取出各个板块有多少页房源(下图3),(极大概率下,板块的房源不可能会超过3000套的,如果真的有,那你再在各个板块了根据价格细分就行了)。

 

最最重要的是,把各个城市的房价情况弄出来给大家看(我坚信大部分童鞋是不会自己去跑脚本看结果的) 

看了一下,讲真这房价一点都不亲民,广州是四个一线城市中上车成本最低的,均价甚至不及二线城市杭州高。 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值