摘 要
时代在进步,科技在进步,互联网改变了世界,在互联网时代,各行各业的人们都在寻求增长点,人们的日常生活越来越离不开互联网。以二手房为例,线下二手房行业持续挣扎,越来越多的年轻人在网上选择房屋。然而,在互联网信息和海量数据源混合的情况下,如何提升二手房的用户体验是一个值得探讨的问题。
我国二手房的庞大人口使得在互联网上寻找合适的二手房成为人们不得不面对的问题。互联网上有很多提供二手房信息的网站,用户在找房子的时候,往往会因为习惯等原因在一个平台上找到。笔者认为,一个在生活中具有实际意义的软件系统才算是一个好的系统,本系统结合以上背景,实现了一个基于网络爬虫技术的链家网站二手房价爬取分析系统。首先,它使用Python开源爬虫框架scrapy对链家网站的二手房价格信息网站进行爬取,根据不同网页的不同特点选择不同的爬取策略,编写爬虫代码,进行必要的过滤和提取二手房信息,是一个建设时的住房信息数据库。数据库部分采用非结构化数据库MongoDB,避免网上信息的非结构化特性对数据存储的影响。然后使用Python开源网站搭建Django框架,完成爬取的二手房列表的网页端展示。
关键词:二手房;Web爬虫;Python;Scrapy;可视化
Abstract
The Times are progressing, science and technology is progressing, and the Internet has changed the world. In the Internet era, people from all walks of life are seeking growth points, and people's daily life is becoming more and more inseparable from the Internet.Take second-hand housing as an example, the offline second-hand housing industry continues to struggle, and more and more young people choose houses on the Internet.However, in the case of mixed Internet information and massive data sources, how to improve the user experience of second-hand housing is a problem worth discussing.
The huge population of second-hand housing in China makes the Internet to find the right second-hand housing people have to face.There are many websites providing second-hand housing information on the Internet. When users are looking for a house, they often find it on a platform because of habits and other reasons.The author believes that a software system with practical significance in life is a good system. This system combined with the above background, and the realization of a second-hand housing price climbing analysis system of HOME LINK website based on network crawler technology.First, it uses Python open source crawler framework scrapy to climb the HOME hand housing price information website of HOME LINK website, choose different crawling strategies according to the different characteristics of different web pages, write crawler code, carry out necessary filtering and extract second-hand housing information, is a housing information database at the time of construction.The database part uses unstructured database MongoDB, to avoid the impact of unstructured characteristics of online information on data storage.Then use the Python open source website to build the Django framework, and complete the web-end display of the crawled second-hand housing list.
Keywords: second-hand house; Web reptile; Python;Scrapy; visualization
目 录
1 绪论 1
1.1 选题背景及意义 1
1.1.1选题背景 1
1.1.2目的及意义 1
1.2 国内外发展现状 2
1.2.1 爬虫技术概述 2
1.2.2 爬虫设计者所面临问题和反爬虫技术的现状 4
1.3 研究主要内容 7
1.4 章节安排 8
2 系统开发环境及技术介绍 9
2.1 Robot协议对本设计的影响 9
2.2 爬虫 10
2.2.1 工作原理 10
2.2.2 工作流程 10
2.2.3 抓取策略 10
2.3 Scrapy架构 11
2.3.1 Scrapy:开源爬虫架构 11
2.3.2 Scrapy框架结构 11
2.3.3 两种继承的爬虫模式 13
2.4 MongoDB数据库 14
2.4.1 NoSQL数据库介绍 14
2.4.2 MongoDB数据库介绍 15
2.5 python web框架Django 15
2.5.1 Django框架介绍 15
2.5.2 MTV模式 15
2.5.3 ORM模式 15
2.5.4 template模板语言 16
2.5.5 Django工作机制 16
2.6 semantic UI开发框架 17
2.6.1 semantic介绍 17
2.6.2 semantic开发 17
2.7 高德地图API 17
3 可行性分析及需求分析 19
3.1 业务需求分析 19
3.2 功能性需求分析 19
3.2.1 数据爬取功能 19
3.2.2 数据可视化功能 20
3.3 可行性分析 21
3.3.1 技术可行性 21
3.3.2 经济可行性 21
3.3.3 法律可行性 22
4 总体设计 23
4.1 系统逻辑层次 23
4.2 系统分布式设计 24
4.3 系统功能设计 25
4.4 系统数据库设计 26
4.4.1 数据库环境搭建 26
4.4.2 数据库表设计 27
5 功能模块的设计与实现 28
5.1 数据爬取模块 28
5.1.1 爬取策略的设计 28
5.1.2 网页数据提取 30
5.1.3 去重与增量爬取 32
5.2 反反爬虫模块 33
5.2.1 模拟浏览器行为 33
5.2.2 动态代理IP 35
5.2.3 爬虫异常处理 36
5.3 数据存储模块 37
5.4 数据可视化模块 38
6 功能模块测试 42
6.1 测试环境及工具 42
6.2 系统功能测试 42
6.2.1 数据爬取功能测试 42
6.2.2 数据存储功能测试 44
6.2.3 数据反反爬虫功能测试 46
6.2.4 数据可视化功能测试 47
结束语 48
参考文献 49
致谢 50