优秀不够,那就要无可替代!
第一件事,设置城市、网址和爬虫头部# 通过城市缩写确定url # 获取详细链接的编号作为房屋唯一id # 获取该页面中房屋的地址信息和其他详细信息
这里面我们需要注意开头说到的一点:公寓
# 如果地址信息为空,可以确定是公寓,而我们并不能在公寓详情界面拿到数据,所以,丢掉 # 解析当前房屋的详细数据
第五步,获取每个房屋的详细数据
上一步已经获取部分主要数据,这一步我们取剩下的数据。
首先先来看一下详细页面长啥样:
最上边的维护时间显示房源的更新状态,要它!
最右边的房屋标签数据也有用,要它一部分!
最下边的基本信息太有用了吧,肯定要它!
没有拿到。
# 生成一个有序字典,保存房屋结果 '''爬取页面,获得详细数据''' '''解析房源维护时间''' '''解析房屋出租方式(整租/合租/不限)''' '''解析房屋的标签''' '''房屋其他基本信息''' # 定位到当前div并获取所有基本信息的 li 标签
还有经纬度
应该该拿的数据都拿到了。
不对,好像
检查一下,在 js 代码中发现了一个坐标
看着很可疑,我们通过坐标反查
看一看到底是不是这个房屋地址
ok,没问题,正是我们要的,那把它也拿下吧!'''解析经纬度数据''' # 获取到经纬度的 script定义数据 # 字符串清洗,并在键上添加引号,方便转化成字典 # 获取完整经纬度数据,转换成字典,并保存
每 50 条数据追加保存到本地文件中
当所有记录都爬完之后,将本地文件保存到数据库中。
数据需要保存到本地文件和数据库中。
其中本地文件每爬取50条追加保存
记录,数据库只需要爬取结束后保存一次
。 保存/追加数据到数据库中 # 读取数据并保存到数据库中
到此我们的流程就已经结束了。
小一我最终花了一天多
的时间,爬取到了27000+
数据。(公寓数据在爬取过程中已经丢掉了)自行设置每次的休眠间隔,上面流程中我并没有贴出来,需要的在源代码中查看。
- 确定目标:爬取的网站网址以及要爬取的数据
- 设定流程:详细说明了我们每一步如何进行,以及整体的流程图
- 确定条件:在搜索过程中确定每个层级的搜索条件
- 细节处理:爬取数据较多,增加必要的细节处理,提高代码健壮性
- 异常处理:异常房屋类型的处理,在这里我们直接丢掉。
比起第一个项目,这个项目流程会复杂一些
,但是本质上没有区别
。
可以看到爬虫的核心代码其实就是那几句。
- 如果本次的网站需要登录,应该怎么办?
- 如果你要租房,你应该怎么分析?
- 上述方法仅针对当前的官网源代码
- 本次爬虫内容仅用作交流学习
在公众号后台
回复某家租房
获取 爬取某家网租房信息源码
本次爬虫的结果数据不对外公开,有需要的交流学习的可以加群获取。(后台回复加群
)
发现最近几篇文章都是5000字的长文,是我太啰嗦了吗(真的怀疑自己了)?能
坚持读到这的晚上记得给自己加个鸡腿
,你已经很棒了。我、我、我也想要加个鸡腿
呸呸呸,说好的不拿人民群众一针一线。
文章首发:公众号【小一的学习笔记】