利用Python爬取房价信息(附代码)

Posted 带我去滑雪

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了利用Python爬取房价信息(附代码)相关的知识,希望对你有一定的参考价值。

       大家好,我是带我去滑雪,每天教你一个小技巧!住房问题从古到今一直备受人们关注。从老子谈到的“安居乐业”,再到诗人杜甫所描绘的“安得广厦千万间,大庇天下寒士俱欢颜”, 不难可以发现古往今来,对于住房问题始终倾注着人们对美好生活的希冀和梦想。时至今日,无论是学有所教、劳有所得,还是病有所医、老有所养,仍然离不开住有所居的实现。基于上述背景,本文运用python对某网站的广州房价进行了爬虫,收集了与房价有关的14项指标数据,例如房屋面积、房屋朝向、有无电梯、房屋所在楼层位置等,爬取结果具体见表1、表2。

表1  python爬虫文本获取结果展示(一)

编号

标题

小区名称

房屋位置

房屋户型

房屋面积

房屋朝向

1

鸿城花园 精致两房 南向高楼层

鸿城花园

市桥

2室2厅

78.6

西南

2

岭南新世界 带空中花园实用小四居 望花园

岭南新世界

白云大道北

4室2厅

98

西南

3

隆康花园 2室1厅 255万

隆康花园

白云大道南

2室1厅

58.1

西南

4

南北对流 楼层好 视野宽阔 采光充足

荷景花园一区

沙湾

4室2厅

118

东南

5

南向三房出售 户型方正 采光好

番禺人民医院宿舍

市桥

3室1厅

97.7

2979

华荟南景园  电梯高层  自住装修保养新净

华荟南景园

沙湾

2室2厅

76.8

2980

南区132方大三房 南北对流户型 中层景观采光都是一留

华南新城

星河湾

3室2厅

132.51

南 北

2981

富景花园 中层温馨两房 舒适实用

富景花园

新港西

2室1厅

80.3

东南 南

2982

悦涛雅苑 2室2厅 268万

悦涛雅苑

区府

2室2厅

64.81

2983

乐意居花园 2室1厅 235万

乐意居花园

长兴

2室1厅

57.26

2984

天鹅花苑电梯大两房 户型房子 双阳台 全南户型

天鹅花苑

长兴

2室1厅

75.38

表2 python爬虫文本获取结果展示(二)

编号

房屋装修情况

有无电梯

楼层位置

附近有无地铁

关注度(人数)

看房次数

每平方米价格(元)

房屋总价(万元)

1

其他

有电梯

高楼层

有地铁

58

14

26718

210

2

其他

有电梯

低楼层

有地铁

2337

18

44184

433

3

简装

有电梯

中楼层

有地铁

25

18

43890

255

4

精装

无电梯

中楼层

无地铁

2106

6

16526

195

5

简装

无电梯

高楼层

无地铁

1533

7

15354

150

6

简装

有电梯

中楼层

有地铁

47

5

49164

570

7

简装

有电梯

低楼层

有地铁

80

19

61332

630

8

简装

有电梯

低楼层

有地铁

873

21

42292

310

9

简装

有电梯

中楼层

无地铁

64

14

22066

203

10

其他

有电梯

高楼层

无地铁

28

12

33118

205

11

精装

有电梯

低楼层

无地铁

40

8

68062

540

12

精装

有电梯

高楼层

有地铁

1522

6

45842

608

13

简装

无电梯

中楼层

无地铁

81

13

23602

135

14

精装

有电梯

中楼层

有地铁

134

10

37464

338

15

简装

有电梯

高楼层

无地铁

1230

12

50674

440

16

精装

无电梯

中楼层

无地铁

691

13

21634

200

17

精装

有电梯

中楼层

有地铁

51

2

72409

2680

18

简装

无电梯

中楼层

有地铁

64

12

27668

210

19

精装

有电梯

低楼层

无地铁

231

14

26718

210

2979

简装

有电梯

高楼层

无地铁

4

0

26432

300

2980

其他

有电梯

中楼层

无地铁

28

0

30339

233

2981

简装

有电梯

中楼层

有地铁

8

5

28300

375

2982

简装

有电梯

中楼层

有地铁

2

0

46700

375

2983

其他

无电梯

低楼层

有地铁

0

0

41352

268

2984

简装

有电梯

高楼层

无地铁

0

0

41041

235

   Python代码如下:

import requests

from bs4 import BeautifulSoup

import pymysql

#获取房源页码链接

def get_urlpage(baseurl):

    Urls = []

    Urls.append(' 网址')

    for i in range(1,100):

        Urls.append('网址 pg'.format(i+1))

    return Urls

#获取房源的数据信息

def get_houseInfos(url):

    r = requests.get(url)

    bsobj = BeautifulSoup(r.text, 'lxml')

    infos = bsobj.find_all('div', 'class': 'info clear')

    houseData = 'title':[],'title_link':[],'houseInfo':[],'positionInfo':[],

                 'followInfo':[],'tagInfo':[],'totalPrice':[],'unitPrice':[]

    for info in infos:

        houseData['title'].append(info.find('div', 'class': 'title').text)

        houseData['title_link'].append(info.find('div', 'class': 'title').find('a')['href'])

        houseData['houseInfo'].append(info.find('div', 'class': 'address').text)

        houseData['positionInfo'].append(info.find('div', 'class': 'positionInfo').text)

        houseData['followInfo'].append(info.find('div', 'class': 'followInfo').text)

        houseData['tagInfo'].append(info.find('div', 'class': 'tag').text)

        houseData['totalPrice'].append(info.find('div', 'class': 'totalPrice').text)

        houseData['unitPrice'].append(info.find('div', 'class': 'unitPrice').text)

    return houseData

if __name__ == '__main__':

    baseurl = ' 网址'

    urls = get_urlpage(baseurl)

    #存储到数据库MySQL

    conn = pymysql.connect(host='127.0.0.1',user='root',passwd='123456',db='scraping',charset='utf8')

    cur = conn.cursor()

    try:

        for url in urls:

            houseData = get_houseInfos(url)

            for i in range(0,len(houseData['title'])):

                cur.execute("insert into lianjia \\                               (title,title_link,houseInfo,positionInfo,followInfo,tagInfo,totalPrice,unitPrice) \\

                                values \\

                                ('%s','%s','%s','%s','%s','%s','%s','%s')" % \\

                                (houseData['title'][i], houseData['title_link'][i],houseData['houseInfo'][i],

                                 houseData['positionInfo'][i],houseData['followInfo'][i],

                                 houseData['tagInfo'][i],houseData['totalPrice'][i],houseData['unitPrice'][i])

                            )

                conn.commit()

    finally:

        cur.close()

        conn.close()

 需要数据集的家人们可以去百度网盘(永久有效)获取:

链接:https://pan.baidu.com/s/16GeXC9_f6KI4lS2wQ-Z1VQ?pwd=2138
提取码:2138 
 


更多优质内容持续发布中,请移步主页查看。

   点赞+关注,下次不迷路!

以上是关于利用Python爬取房价信息(附代码)的主要内容,如果未能解决你的问题,请参考以下文章

Python爬虫实战,openpyxl模块学习,爬取房价信息并简单的数据分析

Python的scrapy之爬取链家网房价信息并保存到本地

如何利用Python网络爬虫爬取微信朋友圈动态--附代码(下)

如何利用Python网络爬虫爬取微信朋友圈动态--附代码(下)

机器学习之利用线性回归预测波士顿房价和可视化分析影响房价因素实战(python实现 附源码 超详细)

爬虫——爬取贵阳房价(Python实现)