Home >  > 南沙小区二手房数据

南沙小区二手房数据

好久没写代码了,今天有空写了一个爬虫,爬取了链家南沙小区二手房的简要数据(采集于2022年5月26日),花了差不多一个小时。

一、南沙在售二手房数量超过50套的41个小区

序号 小区名称 4月参考均价 90天成交套数 在售套数
1 南沙碧桂园 17482 10套 232
2 碧桂园天玺湾 24512 2套 217
3 时代南湾 24589 11套 185
4 南沙奥园 16545 2套 182
5 南沙金茂湾 33195 4套 178
6 南沙万达广场 7964 4套 152
7 丰庭花园 19325 2套 133
8 越秀滨海珺城 29134 5套 133
9 星河山海湾 34085 1套 123
10 凯德新玥 13831 7套 113
11 时代长岛 24888 1套 113
12 南沙境界家园 18690 4套 103
13 万科府前一号 27333 0套 101
14 越秀滨海隽城 24698 3套 98
15 南沙碧桂园豪庭 21863 6套 98
16 万科南方公元 20897 2套 95
17 叠翠峰 31055 2套 94
18 广晟海韵兰庭 21117 1套 91
19 南沙保利城 23813 0套 86
20 阳光城丽景湾 17645 4套 85
21 海力花园 20200 1套 82
22 越秀滨海御城 28937 4套 81
23 龙光棕榈水岸 27772 2套 78
24 广州时代云图 27151 0套 77
25 广州星河丹堤 23561 5套 77
26 珠江源昌花园 18218 1套 76
27 富力伯爵山 18539 1套 76
28 大岗翡翠蓝湾北区 13339 3套 72
29 南沙珠江湾 21697 1套 72
30 星河盛世 28219 4套 72
31 中大城 22356 0套 69
32 碧桂园海湾1号 24380 1套 67
33 珠光南沙御景 13245 5套 65
34 龙光棕榈水岸北区 26977 4套 64
35 富力天海湾 15775 2套 64
36 创鸿嘉园 18334 1套 61
37 优山美墅 19809 0套 60
38 优山悦海 21604 1套 58
39 海璟奥园 20108 2套 56
40 越秀滨海悦城 29380 1套 50
41 南沙湾东苑 29944 0套 50

 

二、90天成交套数最多的29个小区。

序号 小区名称 4月参考均价 90天成交数
1 时代南湾 24589 11
2 南沙碧桂园 17482 10
3 凯德新玥 13831 7
4 南沙碧桂园豪庭 21863 6
5 越秀滨海珺城 29134 5
6 广州星河丹堤 23561 5
7 珠光南沙御景 13245 5
8 南沙金茂湾 33195 4
9 南沙万达广场 7964 4
10 南沙境界家园 18690 4
11 阳光城丽景湾 17645 4
12 越秀滨海御城 28937 4
13 星河盛世 28219 4
14 龙光棕榈水岸北区 26977 4
15 滨海半岛 19436 4
16 越秀滨海隽城 24698 3
17 大岗翡翠蓝湾北区 13339 3
18 碧桂园天玺湾 24512 2
19 南沙奥园 16545 2
20 丰庭花园 19325 2
21 万科南方公元 20897 2
22 叠翠峰 31055 2
23 龙光棕榈水岸 27772 2
24 富力天海湾 15775 2
25 海璟奥园 20108 2
26 富佳花园 19517 2
27 明珠花园(南沙区) 10439 2
28 云水雅苑 21161 2
29 大岗翡翠蓝湾东区 14076 2

三、爬虫代码

import xlrd
import xlwt
from xlutils.copy import copy
import requests
from lxml import etree


# 采集网页
def get_html(url, max_try_number=5):
    #对它的结果进行判断,html_code = get_html(url)  if html_code: article_urls = parse_detail(html) for article_url in article_urls:
    try_num = 0
    while True:
        try:
            response = requests.get(url, timeout=5)
            if response.status_code == 200:
                return response.text
            return None
        except Exception as e:
            print(url, '抓取报错', e)
            try_num += 1
            if try_num >= max_try_number:
                print('尝试失败{}次后,放弃尝试'.format(max_try_number))
                return None

# 对网页内容进行解析
def get_url_list(html_code):
            selector = etree.HTML(html_code)
            title = selector.xpath('//div[@class="title"]/a/text()')
            price = selector.xpath('//div[@class="totalPrice"]/span/text()')
            saled = selector.xpath('//div[@class="info"]/div[2]/a[1]/text()')
            on_sele = selector.xpath('//a[@class="totalSellCount"]/span/text()') #括号里最高级要用双引号。 #如果没找到,返回[]。如果找内容,后面也要加text()。如果要取图片url,用/img/@src
            if len(title) > 0 and len(price) >0:
                return (title, price,saled,on_sele)
            else:
                return None



def write_excel_xls_append(path, value):
    workbook = xlrd.open_workbook(path)  # 打开工作簿
    sheets = workbook.sheet_names()  # 获取工作簿中的所有表格
    worksheet = workbook.sheet_by_name(sheets[0])  # 获取工作簿中所有表格中的的第一个表格
    rows_old = worksheet.nrows  # 获取表格中已存在的数据的行数
    new_workbook = copy(workbook)  # 将xlrd对象拷贝转化为xlwt对象
    new_worksheet = new_workbook.get_sheet(0)  # 获取转化后工作簿中的第一个表格
    for i in range(0, 1):
        for j in range(0, len(value)):
            new_worksheet.write(i+rows_old, j, value[j])  # 追加写入数据,注意是从i+rows_old行开始写入
    new_workbook.save(path)  # 保存工作簿
    print("xls格式表格【追加】写入数据成功!")

def main(url):
    html_code = get_html(url)
    if html_code:
        urls = get_url_list(html_code)
        if urls:
            print(urls[0])
            zz=list(zip(urls[0],urls[1],urls[2],urls[3]))
            for i in zz:
                write_excel_xls_append("result.xls",i)
        else:
            print('列表页没取到数据')





if __name__ == '__main__':
    for i in range(1,11):
        url = "https://gz.lianjia.com/xiaoqu/nansha/pg{}/"
        url = url.format(i)
        print("{} crawling ......".format(url))        
        main(url)
本文暂无标签