前言:
前情提要:可以先看下沪漂小窝租房信息整合系统V3.0
【如果没有重大变化,v4 将是最终大版本】
上一个版本已经完成了自主分类器的支持,现在的话最终的项目已经基本完成,支持多城市的租房信息的分类查询。
目前支持的城市:上海、北京、广州、深圳、杭州、南京、武汉、重庆、成都,共9个国内一二线城市。 本次作为最终版本的一个文档,介绍此系统主要的功能和上手学习姿势。
需求简介:
爬取豆瓣网几个重点城市(可以先从一个城市开始)租房类小组的帖子,根据帖子内容分析出该租房信息的相关内容,比如出租方式,付款方式,靠近的地铁站,重点区分广告帖子等等,以便在寻找合适的房源的时候进行更针对性的查找,简约用户的信息选择时间。为方便查询提供PC端和移动端两个查询方式。
数据流向:
功能模块:
- 分类器模块
按照通用的文本分类步骤:
- 数据获取
- 数据预处理(数据分类:准备训练库和测试库)
- 文本中文分词
- 计算TF-IDF词向量
- 训练分类器。常见的分类算法:朴素贝叶斯、逻辑回归、随机森林、支持向量机。在此案例中,效果差异并不明显,均可以达到90%以上的准确率。
- 文本分类预测
本部分需要先提前完成,为了后面爬虫再运行的时候的时候,直接使用分类器进行预测。
其中还需要进行文本相似度的匹配,如果超过一定阈值,则不会进入分类信息表,但是还是会存到租房原始信息表中,详情看 文本去重
- 爬虫模块
使用Scrapy框架搭建的一个爬虫,获取信息进行过滤,分类,储存到数据库。
这里先学习一下Scrapy,其实比较简单。多城市的支持只是在Scrapy添加多个爬虫,但是因为都是同一个网站,所以处理方法都是通用的。
在douban.py文件中的完成了两个通用处理方法,在需要添加新城市的时候直接引用处理即可。这个前提是同一个网站,如果是不同网站则需要按照不同网站的规则编写处理方法。
- 查询PC端
使用flask搭建的一个web页面,提供信息的查询、筛选、搜索等功能。
PC端地址更新为:
https://hupiao.mlscoder.cn
【账号发布次数】 是最近30天被爬虫抓取到本地数据库中当前帖子创建者发布的帖子数。作为一个辅助判断,如果次数很高,说明当前是一个中介账号发布的信息。
还有一个疑似中介的标签,这个标签是推测这个帖子是一个标准的中介贴,本身没有任何实际的房源信息,只是会写:个人房东直租,XX区域,XX地铁(多个站点)的房源,都可以找我。
【地铁站点、价格区间】在v3中这两个选项是文本输入框,不是很符合懒人,所以在v4中修改为选择框的形式。
- 查询小程序端
使用是SpringBoot搭建后台服务,提供小程序端的查询和服务。详情点沪漂小窝
※ 老版本中有一个定时推送的功能,在最新版本已经删除了,因为我发现,这个功能比较鸡肋,因为在这上面的多数信息都是中介发的,并没有实际的推送价值。
开发相关:
o 开发语言:
- 爬虫-Scrapy-Python
- PC端查询-Flask-Python
- 移动端查询-微信小程序
- 移动端服务-Springboot-Java
o 数据库:Mysql7
o 项目地址:
Scrapy爬虫 PC查询端:
https://github.com/mlscoder/hupiao
小程序:
https://github.com/mlscoder/hupiao_miniapp
小程序服务端:
https://github.com/mlscoder/hupiao_miniapp_service
使用tips:
Scrapy爬虫 PC端(重点)放在github上。readme里面有详细的说明,这里不再赘述。
master分支是沪漂小窝V3.0版本,单城市版本;
mancities分支是沪漂小窝V4.0版本,多城市版本。
使用时注意区分。欢迎关注我的个人主页:
https://github.com/mlscoder
其他相关:
- 如果除了上述几个城市还需要新增城市,可以留言,后面将新增支持。
- 此系统多数方面供学习使用,少数可以用来寻找租房信息,不过根据我对上海地区的信息分析,85%的帖子都是中介发的,即便宜又好的房子基本是3天内都可以出租。
- 如果没有其他变动,沪漂小窝基本是更新到这里,不会做大的变动,如果有bug也可以反馈。
- 因为爬虫采集和查询服务是需要代理和服务器(算下来一天至少5块钱),所以觉得好用的有学习价值,可以打赏一下,感谢!
我是马拉松程序员,可不止于代码!