如果想了解更多关于python的应用,可以私信我,或者加群,里面到资料都是免费的

http://t.cn/A6Zvjdun

近期,有个朋友联系我,想统计一下北京二手房的相关的数据,而自己用Excel统计工作量太过于繁杂,问我用Python该如何实现。

构造要访问的URL

这里,我试着抓取北京海淀区二手房的相关数据。首先,是观察一下URL的结构,如下:

获取每个房子详细信息的URL

代码如下:

  1. # 采用随机的UA
    ua = UserAgent()
    headers = {'User-Agent': ua.random}
    # 房屋信息列表
    houseInfoArray=[]
    # 爬取海淀区全部的数据
    for i in range(1,2):
    res = requests.get('http://bj.lianjia.com/ershoufang/haidian/pg'+str(i),headers=headers)
    # 使用html筛选器
    soup = BeautifulSoup(res.text, 'html.parser')
    #print soup
    # 网站每页呈现30条数据,依次爬取详细的信息
    for j in range(0,30):
    # 获取房屋详细信息的链接
    url = soup.select('.sellListContent')[0].select('.img')[j].get('href', None)

解析每个房子的详细信息

接下来,获取到每个房子的URL了,就是爬取URL对应的数据并对一个个的房屋获取其详细信息了,思路同上,也是根据源码获取相关的标签,然后获取数据,这里将每个房子的信息保存在字典中。直接贴代码:

  1. def gethouseInfo(url):
    """
    获取房子的详细信息
    :param url: 子地址
    :param soup: 父XML,可以从中获取小区信息
    :return:
    """
    # 返回的数据类型为字典
    info= {}
    # 请求子页面
    res = requests.get(url)
    # 提取子域名内容,即页面详细信息
    soup=BeautifulSoup(res.text,'html.parser')
    # 小区信息
    communityName = soup.select('.overview')[0].select('.content')[0].select('.communityName')[0].select('.info')[0].get_text()
    info['communityName'] = communityName
    # 获取价格信息,包括总价和均价
    price = soup.select('.overview')[0].select('.content')[0].select('.price')[0].select('.total')[0].get_text()
    unit = soup.select('.overview')[0].select('.content')[0].select('.price')[0].select('.unit')[0].get_text()
    info['price'] = price+unit
    unitprice = soup.select('.overview')[0].select('.content')[0].select('.unitPrice')[0].select('.unitPriceValue')[0].get_text()
    info['unitprice'] = unitprice
    # 获取房屋户型
    room = soup.select('.overview')[0].select('.content')[0].select('.room')[0].get_text()
    info['room'] = room
    # 获取朝向信息
    type = soup.select('.overview')[0].select('.content')[0].select('.type')[0].get_text()
    info['type'] = type
    # 获取房屋面积
    area = soup.select('.overview')[0].select('.content')[0].select('.area')[0].get_text()
    info['area'] = area
    return info

我爬取了30套房子的信息,结果如下:

  1. area communityName price room type unitprice
    0 86.3平米1988年建/板楼 金沟河3号院 630 31厅中楼层/共6 北简装 73001元/平米
    1 77.1平米2003年建/板楼 百旺新城 620 21厅顶层/共6 北简装 80415元/平米
    2 94.31平米2004年建/板楼 幸福时光 690 21厅高楼层/共6 北简装 73163元/平米
    3 234.12平米2001年建/板楼 万泉新新家园 2980 42厅底层/共6 北平层/精装 127285元/平米
    4 54.5平米1987年建/板塔结合 北洼西里 465 21厅高楼层/共17 西南简装 85321元/平米
    5 107.99平米2000年建/板楼 玉渊潭南路9号院 1360 21厅中楼层/共6 北精装 125938元/平米
    6 76.07平米2003年建/塔楼 逸成东苑 618 21厅低楼层/共22 北平层/简装 81241元/平米
    7 68.39平米1999年建/塔楼 今典花园 698 21厅低楼层/共26 南简装 102062元/平米
    8 83.3平米1990年建/板楼 柳林馆 865 31厅中楼层/共6 北简装 103842元/平米
    9 114.94平米2002年建/板楼 当代城市家园 830 22厅中楼层/共11 北精装 72212元/平米
    10 71.6平米1991年建/塔楼 西翠路12号院 710 31厅中楼层/共18 东北简装 99162元/平米
    11 132.78平米2002年建/塔楼 曙光花园 1258 32厅中楼层/共17 东南精装 94743元/平米
    12 77.78平米2007年建/塔楼 安宁佳园 520 21厅高楼层/共18 西南 北其他 66855元/平米
    13 93.7平米1989年建/板楼 塔院小区 850 31厅中楼层/共6 北精装 90715元/平米
    14 69.2平米1992年建/板楼 八里庄北里 570 31厅底层/共6 西 北简装 82370元/平米
    15 81.23平米2002年建/塔楼 望河园 710 21厅低楼层/共17 西南平层/简装 87406元/平米
    16 150.05平米2000年建/板楼 美丽园 1550 32厅低楼层/共7 北精装 103299元/平米
    17 115.04平米未知年建/塔楼 永泰园 690 21厅中楼层/共31 东北其他 59979元/平米
    18 105.18平米2001年建/塔楼 人济山庄 1260 21厅高楼层/共26 东精装 119795元/平米
    19 88.96平米2003年建/塔楼 逸成东苑 807 31厅低楼层/共17 西南精装 90715元/平米
    20 172.56平米2003年建/板楼 万泉新新家园 2498 32厅低楼层/共7 北精装 144761元/平米
    21 140.18平米2010年建/板楼 领秀新硅谷1号院 1150 31厅顶层/共9 北精装 82037元/平米
    22 59.87平米1995年建/板楼 安宁里 410 21厅高楼层/共6 北精装 68482元/平米
    23 76.58平米2000年建/板楼 永泰园 535 21厅中楼层/共6 北简装 69862元/平米
    24 54.7平米1984年建/板楼 翠微南里 528 21厅中楼层/共5 东南精装 96527元/平米
    25 72.25平米1994年建/板楼 中关村 770 31厅底层/共6 西简装 106574元/平米
    26 59平米1988年建/塔楼 双榆树东里 575 21厅中楼层/共16 南精装 97458元/平米
    27 57.24平米2000年建/板楼 宝盛里 370 11厅顶层/共5 西简装 64640元/平米
    28 66.87平米2006年建/板楼 观澳园 465 11厅顶层/共9 南简装 69538元/平米
    29 116.47平米2003年建/板楼 诚品建筑 1080 21厅高楼层/共9 西精装 92728元/平米

如果想了解更多关于python的应用,可以私信我,或者加群,里面到资料都是免费的(http://t.cn/A6Zvjdun)

可以发现,海淀的房子无论哪个小区,均价都高哇!那好好学Python吧,用知识武装自己!

当获取到相关的数据之后,就可以存储(MongoDB或者MySQL),以及统计分析了。

 

这价格看得我偷偷摸了泪——用python爬取北京二手房数据的更多相关文章

  1. python爬取京东价格

    昨天准备爬取一个京东商品的价格,正则写好了一直是空的 后来我去页面里面看了下,价格标签里果然是空的 百度了下,大家都说是js来控制显示价格的 于是去抓包试试,找到了一条mgets的请求 中间很多参数不 ...

  2. 【Python爬虫案例学习】python爬取淘宝里的手机报价并以价格排序

    第一步: 先分析这个url,"?"后面的都是它的关键字,requests中get函数的关键字的参数是params,post函数的关键字参数是data, 关键字用字典的形式传进去,这 ...

  3. Python爬取6271家死亡公司数据,看十年创业公司消亡史

    前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: 朱小五 凹凸玩数据 PS:如有需要Python学习资料的小伙伴可以加 ...

  4. 详细记录了python爬取小说《元尊》的整个过程,看了你必会~

    学了好几天的渗透测试基础理论,周末了让自己放松一下,最近听说天蚕土豆有一本新小说,叫做<元尊>,学生时代的我可是十分喜欢读天蚕土豆的小说,<斗破苍穹>相信很多小伙伴都看过吧.今 ...

  5. Python爬取指定重量的快递价格

    目录 一.获取查询接口 二.获取相关数据 三.编写爬虫脚本 四.查看查询效果 背景:现在这个时代,快递横飞.我们想寄一个快递,给出的选择也是多种多样的(根据快递的大小.送达的时间.寄送的距离及价格.公 ...

  6. Python 爬取淘宝商品信息和相应价格

    !只用于学习用途! plt = re.findall(r'\"view_price\"\:\"[\d\.]*\"',html) :获得商品价格和view_pri ...

  7. Python爬取猪肉价格网并获取Json数据

    场景 猪肉价格网站: http://zhujia.zhuwang.cc/ 注: 博客: https://blog.csdn.net/badao_liumang_qizhi 关注公众号 霸道的程序猿 获 ...

  8. Python爬取跑男的评论,看看大家都在看谁吧

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. 以下文章来源于菜J学Python,作者: J哥 Python爬取爬取腾讯视频弹幕视频讲解 http ...

  9. 看不到但摸得到的捣蛋鬼---Zero Width Space

    看不到但摸得到的捣蛋鬼---Zero Width Space 1.情况如何? 昨天,"某某某"的代码出现了一个bug.大概是这个情况: 有一个提示信息,需要展示,大概这样: 这行文 ...

随机推荐

  1. git 更换push 提交地址

    git 删除远程地址 1.找到对应项目 右键点击 GIT Bash Here 2.输入命令 git remote rm origin 3.对应项目 右键点击 GIT Sync..... 4.点击Man ...

  2. drf的频率认证

    频率认证源码分析 APIView --->dispatch方法--->self.initial(request, *args, **kwargs)---> self.check_th ...

  3. IDEA编写 Scala时没有语法检查和错误提示

    #问题描述 在IDEA中写scala程序时,一些明显的语法错误不进行检查,没有像写Java时的红线什么的,当编译运行时,编译失败. https://blog.csdn.net/weizheng1000 ...

  4. Python第六章-函数02-函数的作用域

    函数 三.作用域规则 有了函数之后,我们必须要面对一个作用域的问题. 比如:你现在访问一个变量,那么 python 解析器是怎么查找到这个变量,并读取到这个变量的值的呢? 依靠的就是作用域规则! 3. ...

  5. Fiddler抓取数据包分析案例

    案例:利用Fiddler抓取苏宁易购网站数据包分析 抓包软件:Fiddler4 请求名字:www.suning.com 详细内容: 一.了解数据包区域的字段含义 图1数据包区域 #:顺序号,按照抓包的 ...

  6. 服务器上安装.NET Framework 3.5 sp1

    操作系统是Windows Server 2008 R2 或 Windows Server 2012 或 Windows Server 2012 R2,可以直接进入“服务器管理器”添加“功能”.

  7. coding++ :Layui-监听事件

    在使用layui的form表单做验证提交的时候,如果结合vue,或者是三级联动的时候,就需要做事件监听了. 具体语法: form.on('event(过滤器值)', callback); 可以用于监听 ...

  8. Python——office编程

    一.office编程需求 二.Excel编程 import xlrd path=input("输入路径:") workbook=xlrd.open_workbook(path)#打 ...

  9. ANTLR随笔(三)

    ANTLR基本语法 前面已经简单介绍了ANTLR以及怎么安装和测试. 同学们应该大概清楚ANTLR的使用场景,但是对于关键步骤,怎么编写一个语法文件并没有详细介绍,这篇笔记主要详细讲解一下ANTLR的 ...

  10. Vertica的这些事(十三)——Vertica备份元数据信息

    ---备份资源池 SELECT 'CREATE RESOURCE POOL ' || name || CASE WHEN memorysize IS NULL THEN ' ' ELSE ' MEMO ...