python爬虫爬取安居客房源信息

这篇博客介绍了如何利用XPath插件安装及使用,配合Python爬虫爬取重庆花溪地区的安居客房源信息。通过分页爬取列表页的价格,再进入详情页抓取更多属性,如户型、面积、朝向等,并进行了数据清洗与存储。文章还分享了可能遇到的错误处理方法和一些学习资源。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Xpath插件的安装

链接:https://pan.baidu.com/s/1T3V11Ev8dPODa2fCRbeuCg
提取码:qvzf
在这里插入图片描述
将这个安装包解压缩
打开谷歌浏览器的扩展程序 ----> 打开开发者模式 ----> 点击加载已解压的扩展程序 ----> 选择解压的文件夹
看下图操作
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
就会出现这个
在这里插入图片描述
浏览器导航栏上也会出现X图标
在这里插入图片描述
点击图标就会弹出 再点击就会关闭(或者使用快捷键ctrl+shift+X) 会出现这样的黑框 左边写Xpath语法 右面是匹配到的结果 还可以看到匹配到的数量
在这里插入图片描述
需要自己去学习一下Xpath定位的语法 很简单的 这里就不赘述了

爬取重庆花溪附近的房源信息(进入正题啦~)

先看一下页面的样子,梳理下逻辑

列表页页面
在这里插入图片描述
列表页的分页按钮
在这里插入图片描述

详情页页面(点击列表页标题进入)
在这里插入图片描述

梳理下逻辑

我们先根据分页获得某一页的列表页,然后爬取列表页的房价,然后进入详情页,爬取详情页的下列信息
在这里插入图片描述
在这里插入图片描述

爬取数据的通用流程

  1. 根据url请求页面,获取页面响应对象(也就是下面代码中的html_obj = requests.get(url=url, headers=headers))
  2. 将页面响应对象转化为etree/parsel对象 (tree = etree.HTML(html_obj))
  3. 定位要爬取的数据 (tree.xpath(’…’))
  4. 获取数据
  5. 持久化存储

代码

终于到了心心念念,激动人心的时刻啦~~ 上代码!!!哈哈哈
写了注释了,不过多解释

from collections import defaultdict
import requests
import pandas as pd
from lxml import etree
import re

# 获取到分页url的一个统一格式
url_all = 'https://chongqing.anjuke.com/sale/p{}-rd1/?kw=%E8%8A%B1%E6%BA%AA#filtersort'
# 请求头
headers = {
   
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36'
}

def get_url_list(url):
    '''获取url列表  用于分页获取内容'''
    url_list = [url.format(i) for i in range(1, 21)] # 获取20页
    return url_list

def get_page_etree(url, headers):
    '''得到页面的etree对象'''
    html_obj = requests.get(url=url, headers=headers)# 根据url请求页面,获取页面响应对象html_obj
    html_obj = html_obj.content.decode() # 解决乱码问题
    tree = etree.HTML(html_obj) # 转化为页面的etree对象
    return tree

def get_data(tree):
    """获取一页的房子数据"""

    # 建立字典
    info_dicts = defaultdict(list)

    # 定位到一页列表页的所有li标签
    li_list = tree.xpath('//ul[@id="houselist-mod-new"]/li&#
### 安居客出租房(武汉为例)爬虫+数据分析+可视化 这个爬虫是我前段时间在淘宝上做单子的时候遇见的一个客户需求。本来以为就是一个简单的爬虫项目。但后面客户加了数据清洗和数据分析的要求。而后又加了要详细代码解释的需求等等。直到最后客户坦白说这是他们大专的毕设.......但是这个单子坐下来只有200左右,我想了一下,感觉好亏啊。在淘宝上随便找一个做毕设的都要好多钱的,而且客户本身的代码能力、数学、逻辑能力都很差,导致我每行都给注释以及看不懂,在我交付代码后又纠缠了我一个多礼拜。反正总体做下来的感觉就是烦躁。头一次感觉到了客户需求变更带来的巨大麻烦。 总之这是一次不是很愉快的爬虫经历。但是作为我写爬虫以来注释最详细的一次,以及第一次真正使用像matplotlib这种数据分析库的代码,我认为还是有必要分享出来给大家当个参考的(PS:大佬轻拍~)。爬虫本身几乎没有什么难度,写的也比较乱,敬请见谅。 **功能** 爬取安居客上的出租房信息(武汉地区的),并通过爬取的数据进行数据清洗以及数据分析。给出四个不同层面的可视化图。最终结果如下图所示: ![Image text](https://raw.githubusercontent.com/srx-2000/git_spider/master/anjuke_room_rent_info/result/1.png) ![Image text](https://raw.githubusercontent.com/srx-2000/git_spider/master/anjuke_room_rent_info/result/2.png) ![Image text](https://raw.githubusercontent.com/srx-2000/git_spider/master/anjuke_room_rent_info/result/3.png) ![Image text](https://raw.githubusercontent.com/srx-2000/git_spider/master/anjuke_room_rent_info/result/4.png) **环境** 1. Windows 10 2. python3.7 **使用方法** 首先声明该爬虫由于是特定情况下写的,所以本身的通用性特别差,仅可以对安居客网站上的武汉的出租房信息进行爬取,且需要自己手动更新cookie。同时在对数据进行分析及可视化的时候由于也是特别针对武汉出租房的进行的,所以针对性也比较强。如果别的需求需要自己进行更改。 1. 访问[安居客网址](https://wuhan.anjuke.com/),获取cookie。 > tip:获取cookie的方法可根据[此链接](https://jingyan.baidu.com/article/5d368d1ea6c6e33f60c057ef.html) 2. 在项目中找到`spider.py`的文件,将第12行的cookie换成你自己的cookie。 3. 运行`spider.py`,获取房源信息。运行后应会产生一个`武汉出租房源情况.csv`的文件。此文件为我们从安居客爬取房源信息,其中包含`房屋租住链接、房屋描述、房屋地址、房屋详情(户型)以及经纪人、房屋价格`五个属性。 4. 在获取了数据之后我们运行`matplotlib.py`文件。进行数据清洗,分析,可视化。运行后即可获得**功能**中展示四个图片。 **技术栈** 1. request 2. parsel 3. pandas 4. matplotlib **进步(相比之前)** 此次爬虫相比之前的技术上可以说有减无增。但其中注释相当详细,可谓是每行代码都有注释。所以对于初学者应该有一些用处。同时使用matplotlib进行了数据分析可视化等。对于数据处理的代码的注释也是几乎每行都有注释的。
评论 20
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值