论文部分内容阅读
留彼工坊科技有限公司是一家专门面向英国当地留学生群体提供学生公寓租房信息服务的020互联网创业公司。在互联网模式下,公司需要为用户提供体验良好的服务并且快速而精准地获取所需的公寓信息。目前其房源数据通过Unite-Students等机构合作以及友商平台获得,通过邮件沟通,手工更新公寓情况以及租赁信息。然而邮件方式效率低下,管理成本高,在租房的热门季度中,余量以及租期信息变动频繁。在业务要求下,需要更为自动化的方式来处理平台之间房源信息的同步,以获取最新精准的公寓数据。网页数据抓取便是一种有效的手段。在不同的公寓平台之间,虽然公寓的信息结构大体一致,但是展示页面细节各不相同,面对定制化的网页采集需求,为减少爬虫编写的工作量,降低生产成本,如何设计整体的系统架构,控制爬虫编写的模块复杂度,解耦模块功能,进行数据清洗、结构化以及导入数据等都是本项目的关键的问题。本人于留彼工坊公司实习期间,参与了公寓后台数据中心的开发工作。参考公司原有的未开发完成的基于Pyspider的爬虫应用,重新开发了基于Scrapy的新的系统。区别于主站后台Livety,数据中心称为Sharingan。Livety负责选择确切的房源数据展示在前台页面,管理用户,而Sharingan主要作为房源数据库,存储和管理从不同平台中采集的结构化的房源数据,并且作为网络爬虫的调度和部署平台,进行一系列的数据处理工作。同时,两个后台中心以消息系统的方式进行通信,以实现系统间的低耦合。本人在项目开发中,具体进行的工作内容有:(1)参与了房源数据库关系模型的建模。深入了解业务需求以及各平台的学生公寓出租信息,制定了结构化的数据存储模型。通过这些工作,为该业务的房源数据结构化提取和导入、存储提供基础和规范;(2)参与了数据中心系统架构的设计,基于整体需求,结合之前遗留的爬虫系统得到的实践经验,面向网页数据采集提取建立通用的模式,确定了新系统的架构,框架、技术以及功能模块整合方案等。明确了开发需求和系统架构设计,内部模块的概要设计等;(3)负责具体模块的实现,子系统的开发及整合,包括Scrapy爬虫的Fragment模块、Processor模块、Validator模块、Spider调度、监控模块,数据库导入模块,数据中心的消息系统等。最后构建出了一个初步可用的完整系统。(4)负责编写相关测试,确保系统的正确运行。通过测试,找出并修改了系统和模块中的程序错误。系统初步上线后,运行情况良好,目前定时从各平台采集数据,用于为内部的展示系统提供公寓数据服务,其扩展性为以后成为通用性更高、面向更多数据的采集平台打下了基础。