某房地产网站数据分析-数据采集

本文介绍了在2020年疫情影响下,通过Python进行某房地产网站数据采集的背景和方法。面对网站的反爬技术,作者利用BeautifulSoup和requests库解析重定向URL,收集并分析房价数据。项目中,通过分析HTML结构获取小区信息和详细页面,以应对不同的页面重定向策略。
摘要由CSDN通过智能技术生成

某房地产网站数据分析纲要

  • 某房地产网站数据分析-数据采集
  • 某房地产网站数据分析-可视化
  • 某房地产网站数据分析-数据分析

一、背景

市场背景

2020年年初开端就因为疫情大部分产业都被迫停工休息,虽说对于房价而言,这几乎并不会影响很大,但具体情况需要通过数据来说话,这里最为重要的就是数据的获取上,如何才能在大数据时代,信息时代中走在前面,对于个人来说,房价水涨船高,怎么样去洞察地区的房价行情,减少买房时候的坑;对于房地产来说,如何才能合理分析市场的变化趋势,进一步的对房地产市场的把控,这都需要所用到的数据,并且对数据进行科学的分析,通过数据真实的反应客观的市场,客户的喜好。

个人背景

开始爬取该项目其实是面试的时候的笔试考核,但很不幸算是不通过,因为中途其他时间耽搁,也没有足够时间去做,毕竟是远程,但也是为了自己以后可以在缩短时间去完成这类题目,项目基于Python编程,仅供学习。

二、反爬技术

项目中爬取的网站为房天下,这里需要了解到的一个名称就是重定向,学过对应的编程语法的应该都了解,在这里可以简单理解为页面跳转,在进入分类筛选前,对页面的请求是可以正常请求,但进入分类筛选后,通过get获取到的数据并不能得到我们所需要的信息,通过抓包可以看到。

<div class="redirect" style="padding-top: 40px;">
    <p class="info" style="font-size: 18pt; margin-bottom: 8px;">自动跳转中<span class="second"></span>s...</p>
    <a class="btn-redir" style="font-size: 14pt;" href="https://sz.esf.fang.com/housing/85__1_0_0_0_1_0_0_0/?rfss=1-9e9436b2bcaf98402e-7a">点击跳转</a>
</div>

所以这里需要进行解析处理一下,原本的URL,可以通过xpath或者find等获取重定向URL。

def get_url(old_url):
    '''获得正确的url'''
    r = requests.get(url=old_url, headers=headers)
    if r'<title>跳转...</title>' in r.text:
        soup = BeautifulSoup(r.text, 'lxml')
        new_url = soup.find(name='a', class_=
'btn-redir'}).attrs['href']
        return new_url
    return old_url

三、项目代码介绍

项目中使用的几乎大部分为BeautifulSoup和request两个库,所以语法中普遍使用为find、select这些bs4的查询进行html查找,甚至有用到正则匹配进行查找,数据为了后续使用pandas,采用了列表嵌套字典的保存方式。简单的讲一下find中的使用结合房天下html,以深圳福田住宅区二手房为例子。
全部小区的信息都包含在class="houseList"中,每一个id="houselist_B09_01"代表一个小区的信息,在其中的a标签中href属性就是该小区的链接,需要字符串拼接添加“https:”来得到完整的链接,
在这里插入图片描述

try:
    r = requests.get(url=true_url, headers=headers)
except:
    time.sleep(3)
    r = requests.get(url=true_url, headers=headers)
soup = BeautifulSoup(r.text, 'lxml')
house_num = len(soup.find_all('div',dataflag='bgcomare'))
for i in range(1, house_num): 
    if i < 10:
        i = "0" + str(i)
    reg_url.append('https:'+soup.find('div'
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值