版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、摘 要随着计算机网络的飞速发展,Internet技术越来越广泛的应用,网络覆盖的区域不 断扩大,给网络数据采集应用带来了蓬勃发展的机遇。采用全新的计算机网络和爬虫系 统,将提高网络数据采集管理效率,是改善信息获取的重要手段之一。近几年来,人们 越来越意识到网络数据的获取才是企业竞争的核心,因此对网络数据的分析已经是最重要的资源之一。高德地图是中国领先的数字地图,其中包含了数量庞大的位置信息和数据,同时高 德地图还有导航等功能;在移动互联网的时代下,不仅仅是移动入口应用,更是人们与 许多事物之间的桥梁。高德地图 API,是由程序语言编写的应用程序接口,它能够帮助 人们在网站或移动端中构建功能多样
2、、交互性强的地图应用程序。除了基本地图功能的 接口外,API还提供了诸如地点搜索、路线规划、定位、地址解析、行政区查询等数据 服务;而高德地图最重要的功能就是定位导航,所以运用高德地图就方便人们实现了许 多功能。本次毕业设计将租房数据与 Python网络爬虫进行了有机结合,通过调用高德地图 API,能够实现有效的管理租房数据信息,抓取最受欢迎的租房信息以及地图信息,管 理抓取的租房数据,方便租房数据查询,提高人们的工作效率。关键词:高德地图API; Python网络爬虫;租房数据管理AbstractWith the rapid development of computer network,
3、Internet technology has been more and more widely applied, and the coverage area of network has been continuously expanded, which has brought the opportunity of vigorous development to the application of network data acquisition. The new computer network and crawler system will improve the efficienc
4、y of network data acquisition and management, which is one of the important means to improve information acquisition. In recent years, people have increasingly realized that the acquisition of network data is the core of enterprise competition, so the analysis of network data has become one of the m
5、ost important resources.Gaode map is the leading digital map in China, which contains a large amount of location information and data, and it also has navigation and other functions. In the era of mobile Internet, it is not only a mobile entry application, but also a bridge between people and many t
6、hings. The autonavi map API, an application interface written by a programming language, helps people build versatile and interactive map applications on websites or mobile terminals. In addition to the interface of the basic map function, the API also provides data services such as location search,
7、 route planning, location, address analysis and administrative query. The most important function of gaode map is location navigation, so it is convenient for people to realize many functions.This graduation design will rent data combined with the python web crawler, by calling the gold maps API, to
8、 realize the effective management of the data information that rent a house, grab one of the most popular rental information and map information, management of fetching data that rent a house, renting convenient data query, enhance peoples working efficiency.Key Words: Goethe map API; Python web cra
9、wler; Rental data management-II -摘 要 TOC o 1-5 h z HYPERLINK l bookmark2 o Current Document AbstractII HYPERLINK l bookmark4 o Current Document 1绪论1 HYPERLINK l bookmark6 o Current Document 研究背景1 HYPERLINK l bookmark8 o Current Document 研究现状1 HYPERLINK l bookmark10 o Current Document 研究内容2 HYPERLINK
10、 l bookmark12 o Current Document 论文组织结构2 HYPERLINK l bookmark14 o Current Document 本章小结3 HYPERLINK l bookmark16 o Current Document 2相关技术介绍4 HYPERLINK l bookmark18 o Current Document 高德地图API4 HYPERLINK l bookmark20 o Current Document 网络爬虫介绍4 HYPERLINK l bookmark22 o Current Document Python 的介绍5 HYPER
11、LINK l bookmark24 o Current Document 本章小结7 HYPERLINK l bookmark26 o Current Document 3需求分析8 HYPERLINK l bookmark28 o Current Document 概述8 HYPERLINK l bookmark30 o Current Document 可行性分析8操作可行性8经济可行性 9技术可行性9 HYPERLINK l bookmark32 o Current Document 功能需求分析9 HYPERLINK l bookmark34 o Current Document 开发
12、环境需求分析9 HYPERLINK l bookmark38 o Current Document 性能要求10 HYPERLINK l bookmark40 o Current Document 本章小结10 HYPERLINK l bookmark42 o Current Document 4系统设计11 HYPERLINK l bookmark44 o Current Document 总体设计11 HYPERLINK l bookmark48 o Current Document Python爬虫设计12分析页面12编写 Python 脚本13 HYPERLINK l bookmark
13、52 o Current Document 地图标识设计15地图API点标识设计 15多种Marker样式在地图上进行标注 15使用默认图标来标注地理位置 16-III - TOC o 1-5 h z HYPERLINK l bookmark54 o Current Document 爬虫租房数据配置18 HYPERLINK l bookmark56 o Current Document 本章小结19 HYPERLINK l bookmark58 o Current Document 5功能设计20 HYPERLINK l bookmark60 o Current Document 总体模块分
14、析20 HYPERLINK l bookmark64 o Current Document 租房模块搜索21 HYPERLINK l bookmark66 o Current Document 高德地图标识设计23 HYPERLINK l bookmark68 o Current Document 本章小结 25 HYPERLINK l bookmark70 o Current Document 6设计测设26 HYPERLINK l bookmark72 o Current Document 设计测设方法介绍26 HYPERLINK l bookmark74 o Current Docume
15、nt 功能测试26 HYPERLINK l bookmark76 o Current Document 测试方法26 HYPERLINK l bookmark78 o Current Document 测试概况26 HYPERLINK l bookmark80 o Current Document 设计性能测试27 HYPERLINK l bookmark82 o Current Document 测试分析 27 HYPERLINK l bookmark84 o Current Document 本章小结 27 HYPERLINK l bookmark86 o Current Document
16、 结 论2828错误!未定义书签.错误!未定义书签致ft错误!未定义书签参考文献附录A Python爬虫程序 附录B调用高德地图API程序-IV -1绪论研究背景随着网络日益发展及生活水平的提高,地图服务呈现多样化趋势,地图开发产业得 到长足发展,市场涌现出大量各有所长的地图 API;根据各个公司GPS产业的开发规划, 必须要对目前主流的相关地图的 API接口的功能,特性等内容进行分析和研究,设计出 符合市场需求且具有竞争力的产品,而高德地图服务功能全面,所以,设计有效的高德 地图API就有了必要性。现在社会的许多领域绝大部分都朝着数字化处理业务及信息化 办公的趋势在发展,加上计算机在人们日常
17、中的使用,不仅丰富了人们的日常生活也加 快了人们的生活节奏。随着互联网的迅速发展,越来越多的用户对应用软件的需求也变 得越来越多,其中对对租房数据的需求就是其中的一种。网络爬虫就是这个互联网信息 时代的产物,它是快速便捷地获取信息的一种工具。它的出现彻底的改变了人们对租房 数据的看法,使用它可以获得很多传统搜索租房数据方式无法拥有的体验,它既拥有传 统收集方式的准确性,又拥有传统方式无法拥有的即时性、便利性。在如今互联网的时代下,58同城等这样的网站虽然满足了人们房屋出租信息的需 求,但58同城等网站上的租房信息并不能直观的给用户展示出来,如对某个房源的地 理位置,公交线路等方面并不能直接在地
18、图上展示给用户,而要直观展示这些信息,就 需把58同城等网站的租房信息与高德地图 API相结合,通过调用高德地图 API来给用 户进行直观的展示。研究现状随着地图API技术的日益成熟,现如今在网站开发中为用户提供其感兴趣的相关地 理信息,成为提升用户体验效果、体现网站综合设计水平的重要手段。例如当人们想选 择一个新的居住地时,必然会对其周边的公共交通设施、教育设施、医院、银行等倍加 关注,例如58同城的租房信息等;在此类网站中利用地图 API技术就可以构建功能丰 富的地图交互应用,从更加真实客观的角度给用户以满意的信息回馈。在市场上所熟知 的数字地图中,高德地图以32.4%的用户使用率在地图中
19、排名第二,这说明还是有相当 多的人在选择使用高德地图。同时,高德地图是基于信息技术和互联网技术建立起来的 地图软件,它的功能强大、更新速度快,还可以通过图片等形式直观展示地理信息,而 且它作为一个免费软件还可以为其它程序提供对应接口,实现基于高德地图的二次研 发。充分利用高德地图API的优势来完成地理信息分析与评估、位置选择等工作。因此, 本次毕业设计课题选择调用高德地图 API来实现网络爬虫爬取数据的展示管理。通过调用高德地图 API来展示网络爬虫爬取的租房数据是一种快速有效的满足客 户的租房数据需求的方式,客户访问后可快捷的进行租房数据挖掘、租房数据搜索,并 且可以根据用户的个人情况,并根
20、据搜索的时间,方便用户快速选择关心的信息并迅速 地地图中查到相关租房地址,所以具有很高的便利性。研究内容本课题利用Python实现一个网络爬虫,用来实现对诸如对 58同城等网站信息的抓 取,具体就是利用Python爬虫爬取58同城的租房信息;然后调用高德地图API对Python 爬虫爬取的信息在高德地图上做标注。优势在于快捷查询、方便操作、方便维护精确信 息,让管理者充分了解各种的基本信息,大大降低了企业人力资源管理的人力和成本, 使信息维护工作变得轻松和高效。该课题通过使用Python的scrpy框架,在分析网页dom结构的基础上抓取信息,学 习使用高德地图API中数据可视化的方法,实现所爬
21、取数据的可视化;Python代码简单 明了,适合根据实际情况快速修改代码,且Python有scrapy这样成熟的框架,不必要 从0开始,所以只需要学习Python的基本语法和Python中自带库及第三方库的简单使 用,例如 Python 的 scrapy框架和 Python 中 Requests BeautifulSoup、CSV 等库的使用; 同时还要学习高德地图API的使用,掌握数据可视化的基本知识,这里主要用到的是高 彳惠地图API的点标识技术。此次通过网络爬虫租房数据的需求进行了分析后,设计及实现了Python爬虫,并调用高德地图API技术在高德地图中标识出来,主要工作有:1、在使用中
22、先进行了了解业务流程,并开始撰写相关需求的分析。2、根据课题具体的需要,分析和设计功能框架结构。3、根据对使用者进行需求分析后进行总体设计,设计出结构图。4、编写相关的开发技术文档。5、编写代码。6、对课题设计进行单元测试。1.4论文组织结构本论文的整体组织结构如下:第一章:引言。主要介绍本课题的研究背景,研究现状以及研发内容。第二章:相关的技术和工具的介绍。主要介绍了高德地图API、网络爬虫和Pythonm 0第三章:需求分析。说明了课题设计的需求分析和开发环境需求分析,包括操作可性,经济可行性,技术可行性等。第四章:系统设计。介绍了课题的总体设计和详细设计以及Python爬虫租房信息数据配
23、置。第五章:功能设计。介绍了课题功能的设计,包括系统功能要求、租房搜索模块以 及高德地图标识设计。第六章:设计测设。课题设计功能实现测试,介绍了详细的测试方法和分析。1.5本章小结本章通过在网上搜索及查阅资料,主要介绍了课题的研究背景,研究现状和研究内 容,说明了此课题实际的作用和功能,以及研发此课题设计所需要掌握和了解的内容。2相关技术介绍高德地图APIGodard地图API是由Godard软件公司提供的调用地图的接口方法。用户的应用程 序可通过Godrad地图API提供的接口方法处理地图数据,并且实现位置相关或地图相 关应用。例如,通过高德地图 API,将地图的数据集成到自己的的应,大大用
24、程序中, 一些地理位置信息可以在地图上进行标记,并以非常直观的的形式显示给用户。高德地 图API还将增加自动驾驶,公共公交,地铁和行人路线规划API。同时,还将增加对矢量地图的支持,大大提高地图下载速度,近期还将增加3D街道地图和其他个性化地理数据。要创建一个地图,需要在一个页面布局中扩展地图活动及实现地图视图类。必须设 置android:apiKey才能在应用中使用地图视图获取地图数据。在模拟器环境中,可以通过申请调试API秘钥,进行程序开发。但在发布时,必须申请签名证书的API秘钥,并替换MapView中的调试API秘钥。Godard地图API,是由JavaScript语言编写的应用程序界
25、面,可以帮助人们在网 站或移动端中建立功能丰富的交互式地图应用程序。除了基本地图功能的界面之外, JavaScript API也提供了一些数据服务,例如位置搜索、路线规划、定位、地址解析和管 理区查询,这些查询服务可以根据自己的需求有选择的进行操作使用。网络爬虫介绍Web爬虫是一个自动提取网页的程序,从万维网下载搜索引擎的网页是搜索引擎的 重要组成部分。传统爬虫从一个或多个初始页面获取 URL。在捕获Web数据的过程中, 不断地从当前页面中提取新的网址并放置在队列中,直到满足系统的一些停条件并因此 停止,而更难集中在爬虫的工作流上。所以有必要过滤基于网页分析算法的主题无关链 接,保存有用的链接
26、并将他们放在等待获取的URL队列中。选择从队列中的下一页URL按照一定的搜索策略,并重复该过程直到系统达到一定的条件。止匕外,爬行器抓取的所 有页面都将由系统存储。对于聚焦爬虫,该过程得到的分析结果对后续爬行过程具有反 馈和指导作用。为了提高爬行效率,爬虫需要尽可能多的高质量的页面单位时间。有五种方法来表 示页面质量:页面和爬行主题之间的相似性。为了提高爬行速度,Web图中的曲面位置是并行的(并行问题)。网络通常在并行爬行中工作,并引入了新的问题:可重复性(并行爬虫或爬行线程在同时运行时添加重复页面),质量问题(并行运行时,每个爬行器或线程只能获取部分页面,导致页面质量和通信带宽的成本降低(当
27、并行运行时,每个爬虫或爬虫线程之间的一些通信是不可避免的)。Web爬虫通常使用三种方式:独立(单个爬 虫爬虫页面、非通信、动态分配(由中央协调器对单个爬行动物进行 URL动态协调分配, 预先将URL静态分配给每个爬行动物)。通用网络爬虫也被称为可伸缩的 Web爬虫。爬行对象从一些种子网址扩展到整个 Web,主要是为房屋搜索引擎和大型 Web服务提供商收集租赁数据。他们的技术细节很 难被展现。这种类型爬虫的特点是范围和数量庞大,它需要很高的爬行速度和巨大存储 空间。爬行页面种类相对较少,而且因为页面太多需要刷新,所以通常采用并行模式, 但是刷新页面需要花费很多的时间。随着 Internet的飞速
28、发展,万维网已经变成了许多 信息的载体。如何有效地提取和利用这些信息成为一个很大的难题。作为帮助人们检索 信息的工具,它成为用户访问万维网的网关和指南。然而,这些通用搜索引擎也存在一 些限制性,例如:1、在不同的领域,背景不同的用户往往有不同的检索目的和要求。通用搜索引擎 返回的结果包括了大量用户不需要的页面。2、利用通用搜索引擎目标指的是最大限度地扩大网络覆盖范围。在有限搜索引擎 中服务器和网络租房数据采集资源之间冲突会变得更加激烈。3、网络形式的丰富性加上Internet技术的不断发展,以及大量不同租房数据的出现, 如图片和租房数据等。在一般情况下,互联网搜索引擎将无法查找和获取这些信息而
29、且 具有一定结构租房数据。4、大多数搜索引擎都会进行关于关键字检索,这使得基于语义信息的查询难以支 持。虽然存在一些缺陷,但一般的 Web爬虫适用于搜索引擎的各种主题的搜索,具有 很强的应用价值。为了解决引擎受限的问题,出现了一种针对性的获取Web资源的关键爬虫。聚焦爬虫是一个自动获取网页的程序。它根据既定的爬行目标,有选择的访问 万维网上的网页和相关链接。与通用网络爬虫不同,聚焦爬虫不追寻广泛的覆盖。相反, 他们的目标是捕捉特定主体相关的网页,并准备为特定主体用户租用租赁数据资源。通 用Web爬虫的结构可分为四个部分:页面爬行模块、页面分析模块、链接过滤模块、 页面租借数据URL队列和初始U
30、RL采集模块。普通的网络爬虫采用了一定的爬行策略, 常用的爬行策略有广度优先策略和深度优先策略。Python的介绍20世纪90年代以来,Python语言在系统管理、任务处理和 Web编程中得到了广泛 的应用。Python的创始人GuidovanRossum在1989决定在阿姆斯特丹开发一个新的脚本解释器,以摆脱圣诞节的无聊。作为 ABC语言的继承,Python被选为编程语言的名称, 因为他是一个名为MontyPython的喜剧组的粉丝。ABC是Guido设计的一种教学语言。 就Guido本身而言,该语言非常漂亮和强大,专为非专业程序员设计的。但是 ABC语 言并没有成功。其原因是 Guido决
31、定避免Python中的错误,因为他不公开。他还想要 取得一些在ABC中还没有实现的东西。可以说,Python是从ABC发展而来的,主要受 modula-3的影响,并结合Unixshell和C. Python已经成为最流行的编程语言之一。2011年1月,被TIOBE评为年度最佳语言。由于Python语言的简单性、可读性和 可扩展性,越来越多的科学计算机构使用Python。许多著名的大学已经利用 Python来编入课程来上课,例如著名的卡内基梅隆大学的编程课。许多大学计算机科学和程序入 门课程将使用Python语言教学。许多开源科学计算软件包提供 Python调用接口。例如, 有三个非常经典的科学
32、计算扩展库,分别为 Python提供快速数组处理的NumPy, SciPy 和Matplotlib。因此,由Python语言好人许多扩展库组成的开发环境将会非常适合于工 程技术。科研人员处理实验租赁数据,制作图表,并有可能开发科学计算应用程序。2018 年3月,语言作者在邮件列表上宣布 Python 2.7将于2020年1月1日结束。如果用户 希望在该日期之后继续获得与 Python 2.7相关的支持,则必须向商业供应商支付费用。Python的设计风格清晰、统一,使 Python具有可读性、可维护性和广泛使用的语 言,深受广大用户的欢迎。设计师的发展背后的一般想法是,对于一个特定的问题,只 要
33、有一个最好的方法来解决它。最重要的项目之一是Python的缩进规则。一个和大多数其他语言(如C)之间的区别是,模块的边界完全取决于该行上每一行的第一个字符 的位置决定的。这是有争议的,因为自C语言诞生以来,语言的语法意义与字符的排列 方式是分开的。一旦被认为是编程语言的改进,不能否认的是,Python通过强迫程序员在需要的模块中缩,使程序变得更清晰、更美观。Python的语法简单,入手非常快,学习曲线低,可以通过命令交互来学习Python的编程;Python编程灵活,即支持面向过程,又支持面向对象;Python除了本身编写外, 还可以混合使用其他语言人,如 C语言和Java语言等,除此之外本身
34、具有很多丰富强 大的库,包括Requests BeautifulSoup、CSV等库,每个库都有自身独特的作用,可以 帮助实现不同的功能,所以选择用 python来实现对网络爬虫的编写。Requests库是Python中的一个HTTP网络请求库,它的作用是用于简化网络请求; 因为Requests是基于urllib用Python语言编写的,并且使用Apache2许可的开放源代码 协议的HTTP库,所以Requests将会比urllib更方便,能为人们节省大量的工作时间。Beautiful Soup提供一些简单的Python函数,用于处理导航、搜索、修改分析树等 功能,其中最主要的功能是从 Web
35、上获取取数据。它是一个工具箱,为用户提供解析文档时需要捕获的数据,因为它简单易行,所以编写一个完整的程序不需要用到很多代码。Beautiful Soup自动将输入文档转换为 Unicode编码,并将输出文档转换为 UTF-8 编码。因此没必要考虑编码方法,除非文档没有指定的编码方法,否则 Beautiful Soup 无法自动识别编码方法。然后,需要做的就是解释原始的编码方法。Beautiful Soup已成 为和lxml、html6lib一样出色的Python解释器,为用户提供了灵活性和便捷性,同时也 为用户提供了不同的解析策略和强大的速度。CSV库的作用封装了读取或写入 CSV文件等。CS
36、V (Comma Separated Values), 即逗号分隔值,是一种常见的文本格式,用于存储表格数据,包括数字或者字符。很多 程序在处理数据时都会碰到 CSV这种格式的文件,它的使用是比较广泛的(Kaggle上 一些题目提供的数据就是 CSV格式),CSV虽然使用广泛,但却没有通用的标准,所以在处理CSV格式时常常会碰到麻烦,幸好 Python内置了 CSV模块。本章小结本章主要详细的介绍了实现此课题设计要用到的一些技术和工具,包括 Python技 术和高彳惠地图API以及Python爬虫。3需求分析概述本次毕业设计课题将租房数据管理与爬虫技术进行有机结合,通过调用高德地图 API,能
37、够实现有效的租房数据信息的可视化展示,使用它可以获得很多传统搜索租房 数据方式无法拥有的体验,它既拥有传统收集方式的准确性,又拥有传统方式无法拥有 的即时性、便利性,它不用纸张记录,只需要一部接入互联网的智能电脑即可使用,大 大的方便了使用者的需求,而且可以在地图中查看相关租房地址信息。需求阶段的目标 主要是对网络爬虫爬取的租房数据的搜索并利用高德地图API在高德地图中标识出来,让使用者了解相关的租房信息。本课题设计的快捷查询、方便操作、方便维护精确信息, 能让管理者充分了解各种的基本信息。可行性分析1、在信息技术中,高可用性是描述系统的连续运行能力,如果系统或组件长期保 持运行状态,系统具有
38、高可用性。提高客户端的高可用性,一直是客户端软件开发人员 和维护人员的方向。2、使用地图标识储存目前发展的很成熟。3、众所周知,Python是面向对象的系统平台。可用性是一种度量指标,用于在随 机时刻测量,或者组件、系统或组件的可能性是其功能的正常运行。它还代表了系统 正常运行的一段时间内的系统或部件。由于以上理由可以明显的得出:本课题设计的开发是可行的。操作可行性这个设计采用基于高德地图 API平台的系统,对于爬虫客户端系统的需求,主要目 的是给使用者提供一个方便的租房数据分析解决方案,网络只有工作人员内部的网络才可以使用。现在已经通过高德地图 API技术和Python技术,形成了一个准确、
39、易用的 模式。随着Python系统的成熟,Python开发和维护人员的不断增加,网络、服务器硬 件逐渐下降,从而降低了对开发商的专业知识有一定的障碍,应该有一定程度的了解编 程语言,对Python的发展丰富的理论知识,有高德地图 API系统的开发一个坚实的基 础。本系统具有界面设计简洁大方,界面轻松切换,功能齐全,程序可完全退出,方便 快捷,直观明了等特点,在操作上是非常方便容易的。经济可行性本次的课题设计,需要用计算机来完成。需要考虑的是实现租房数据的爬取以及展 示,因此需要利用计算机实现软件在系统上的运行,从长远的一个角度来看,这是可持 续的。这不仅可以给开发者带来良好的利润,来可以带来更
40、好的规范和模式。系统是通 过网络爬虫爬取58同城使的房屋数据,采用并在高德地图中标识出来,所以开发此课 题设计的程序的要求并不是很高。技术可行性智能终端设备如移动电脑,已经随着消费电子市场的发展已经进入千家万户。几乎 每一个年轻人都在接触电脑,而安装应用程序,使用应用程序对普通人来说并不困难, 这里只需安装 Python2.7和Python中常用的库,如Requests BeautifulSoup、CSV等库。 而Python有scrapy这样成熟的框架,对于编写 Python爬虫已经变得难度不大;另外, 需要调用高德地图API,用高德地图API的点标识技术把Python爬虫爬取的58同城的
41、租房信息在高德地图上标注出来,而在高德地图的公开网站,这些技术都已经相当成熟。功能需求分析需求分析需要准确了解用户的想法,但一般的用户并不了解计算机知识,不确定 系统是否可以实现其所需要的功能,这就导致了用户无法用计算机语言来描述自己所 遇到的问题,无法准确的表达出自己的需求,需求分析就是要准确的分析出用户的需 求与要求。如果分析的准确的话可以使软件更加贴合用户使用习惯,从而提高软件的 质量,且需求分析结果会影响开发的方向,所以技术人员要采取一些特殊且有效的方 式方法来和用户进行交流以便保证自己能准确的了解用户的需求寻找出用户遇到的问 题,通过不断地交流更深的了解目前系统中存在的问题,并区分出
42、主要问题和次要问 题加以解决来满足用户的需求。此次毕业设计课题要求在网络系统上能够运行,主要完成Python爬虫能实现网络爬虫的功能。实现多线程,能多个线程同时爬取多个页面,在尽可能短的时间内爬取尽 可能多的内容。开发环境需求分析硬件环境:PC机软件环境:操作系统: Windows 7/windows 8/windows 10.、Python 2.7、高德地图 API性能要求1、准确性该课题设计由于要考虑大部分消费者的需求,所以考虑周全还是很重要的,在设计的过程中,主要考虑用户在发现租房数据时的各种要求,这就决定了需要 系统运行稳定且设计周到,设计时要考虑到的地方有很多。 系统准确性主要考虑P
43、ython 系统平台运行的稳定性和对系统操作的稳定性影响等;因为使用者对租赁数据需求及搜索的信息不同,所以其主要考虑软件运行使用 pycharm、高德地图标识及查找等方面。2、易用性建立一个统一软件开发过程简单的语言文件,使得文件前后清晰且易于理解。还需要用户使用流畅,一用就懂。3、可靠性 该课题设计由于其软件的特性决定了其可靠性非常重要,主要有软件 运行时的可靠性、信息传输时的可靠性、接受信息时的可靠性、租房数据处理时的可靠 性等几个方面。再设计时,运用工程设计的思想来考虑如何避免和解决各种复杂因素造 成的不稳定因素。本章小结本章主要介绍了课题设计的三个方面:可行性分析,开发环境分析和性能要
44、求。可 行性分析主要包括操作可行性,经济可行性,技术可行性;开发环境分析介绍了软硬件 的环境及配置问题;性能要求主要是准确性,易用性和可靠性。-10 -4系统设计总体设计本课题的总体设计是分析58同城的租房信息,然后利用Python爬虫爬取租房信息, 再调用高德地图API在地图上展示,总体设计如图4.1所示:高德展示通过分析58同城的网田,筛选出需要的信息:租房信息亲|佣python犯虫爬取58同城上的租房信息通过调用高德地图即1把速取的租房信息在高德地图展示图4.1总体设计流程图用户不需要对爬虫原理有任何Python租房爬虫是一个能让所有人使用的网络爬虫,理解,只需要输入自己想要的查找的租房
45、信息,就能通过高德地图得到各种相关的租房 信息。特点就是快速、简单和方便。编写Python爬虫能实现网络爬虫的功能。Python通过调度器和URL管理器,下载URL内容,解析URL内容能够搜索到价值租房数据,建立新 URL列表,新增到待爬URL上-11 -Python爬虫设计分析页面此次毕业设计课题的爬取对象选用了 58同城网站的租房信息。58同城网站是一家 分类信息网站,2005年12月12日创立于北京市,现如今,58同城已发展成为了涵盖 招聘、房产、汽车、金融、二手和地方官生活服务等各个领域的生活服务平台。在用户 服务层面,它不仅是一个信息交互的平台,也是一个一站式的生活服务平台。 与此同
46、时, 它正在逐渐为企业建立和使用者建立一个全面的营销解决方案。此课题选择的是58同城在兰州关于租房的网页,网址是:http:/chuzu/?minprice=3000 50000&sourcetype=5 首先对要爬取的页面进 行分析,要爬取的网页如图4.3所示:个人房谑展4gta光主图里卫卫生间耀房源58同城房产兰州网司眩 兰州房产倍出 兰州合租层区域兰州小区不限城美 值可安宁芭园红古新区三州附襁 时砌 F1000-154元1500-20M5E2000-2500元J500-30005B 3000|3000|-5600fTt: Tift iEi钏RSffi方或:不陪吟出相中间出租其他:如向碰
47、WT ;只有图个人房源经纪人安选店源商铺 写字搂兰州合租房无中介费精装全配看房随时急租交通便利长租育优惠主删1的2CW双桥磔一堀区.部妫来帚?织人:好点地产唯印Iff1100 g月图4.3 58同城页面打开网页,然后对元素进行省察分析,选择需要的元素。如图 4.4所示:-12 -!-嫌专条法t f 18 -a - J1t! class=!secitem租金:不限509元以下43 href-/hezu/kl/?key-%E S%935tBl%E 71fi893S8C%ESXSSXACSE5WX93HanClick:,i,clicfcLag frcm-fcpc list lz Zujin 500
48、1000,) *590- 10d07Ll&00-15007i1538- 200。元“日图4.4分析元素展示大致了解选择元素所存储的路径规则;例如58同城的租房信息是:/ chuzu/pnpage/?minprice。然后进行对比,通过观察,决定将页面有无 .list元素来作为 是否已读取完所有房源的判断条件。如图 4.5所示:Whl1ft True :pag +- 1print * fetch : *. lu-L format li)#得到标签包惠着的文本house - select(h2H) 0. string, ertccidfrf utfa)#得到标签内属性的值house. SElt(a
49、)0tf图4.8解析html文件由于读取到的链接路径是相对路径,所以需要urljoin得到完整的url地址。如图4.9所示:urljoin(urlj, house. select (a) 0 href )图4.9转换url路径运行代码python crawler.py,此时目录下已生成了 rent.csv。实验中会用到三个文件: 分别是 crawl.py, rent.csv 和 index.html。其中 rent.csv是房源文件,由 crawl.py 生成。-14 - crawl.py是一个很简单的获取网页的爬虫。index.html是显示地图的最关键部分。实现的 流程如图4.10所示:图
50、4.10实现爬虫流程图地图标识设计地图API点标识设计租房数据的设计开发是本次课题设计的核心技术,租房数据是为应用服务的。好的 租房数据设计应该首先满足应用系统的业务需求,利用约束、完整性等准确的表达租房 数据间的关系;保证租房数据的准确性,一致性和好的扩展性;能够让租房数据可以在 高德地图中标识并查找出来,从而提高租房数据的查询效率。在高德地图中,用户可根 据自己的需求查询地址、交通方式来定位租房信息。本系统模块组成主要包括系统的主 要组成模块及每个模块所要完成的功能。每个模块基本上脱离不了租房数据,所以在租 房数据设计时,要充分考虑租房数据的高效性,减少租房数据冗余,保证系统高效运行。地图
51、标识的设计主要用到的是 API点标记技术,在此用到的是高彳惠地图 API点标记 技术,它的作用主要是为地图的信息位置添加一个点标记的类。多种Marker样式在地图上进行标注Marker是一个用来在地图上添加点标记的类。使用它将任何你想让用户看到的感兴 趣点标注在地图上,你可以为标注指定任意的Icon或者内容,以及文字Label。例如想在地图上将全国的省份都用 marker标注出来。这里可以使用了一个对象数组来描述全-15 -国的省市信息,通过JS标签的形式引用到页面中来,每个省市的信息包括省市名称、 省会位置、类别等。类别包括首都、省、特别行政区种。所以将根据类别,使用不同的 方法来为为标记设
52、定不同的样式。创建地图对象如图 4.11所示:van mapObj = new AMap.Map(*container,zoom:5);var markers - ;province三见Demo弓I用的3s文件for(var i = 0; i hom gps gd 二 i II | External Librarie 中 Scratches and Ch0m_gps._gd 卜 crawLpys-+- codi 目;uif-g 一片import 一siirJ : rht tjj : /bj, 5S,仃6出口 加国 i g时唱yu/iwg片泣巡n40M url - ht i /I =. 58.
53、c&ia/hEu/pn ag) /lky-E5%93旭1 ME7H89H8CKE5*i85MACE5WH93tcucskey 弄已完成的页砂序哥!初时为p 0CEY_file - file(rent2a wb*) csv_file mrite (codecs. E0M_UTFB)C5_irriter - csv. wi i ter (es_f i le, delimi terfe 1 )while Trutsi 。口宫6+= 1while TrueRun: scrawlftu品博心雷格品冢具百北光纤市明保洁音嬴眼蔚拎包入住无中介雁潴1500 hi t口 :门1,三&匚aZbtzuZamaisz
54、sasiaij! ataai品牌公函宣宁科期城西区含理公甫出租乐居官公志 宣宇科敢城900出1口;门115乱匚;口小反二”才飞魂上相:;前Ik, mhsil金砂名苑楮修公屯冢电齐全 无卬介 闻时看店 报包入住 黄河北1030 htt口;门1,这.加小妈二皿3431翁4通三14看*. Ehlml思亨裒精品心富应租,含租井无任何中介备用,东方红广场捕中街早市东方虹广场1战0枇5:15!. 3即8fn/hBwW34333能63。的帕土 shunl 小西湖义乌商圈附近精装公务交通便利品牌取私 挣包入住 小西湖1230 httph/lz.居一匚皿/精二皿34二口三3:口共口加打一品二川1墟关区FTD幅度
55、公寓密电丹宝品牌原也定期冢政持包久住 黄河北1680 J:t 11: :/1 z. 5 3. can/ha zu / 4 3359 L i 7 45 :._s:i zm 1FID幅度公寓精装修品牌家电定期供范专杷营嬴挣包入住无中介黄河北1350 Jit I(7.1 1 z. 5S. ccc/l-iezu/.3422534152741天酒幸福港 房和立苏3。机).原具尿电齐全,择包入住黄河北14S:D卜.tt*J“二3艮匚占三口1-40也配非造三1工一旦口红图5.2爬取租房信息主要的程序代码如图5.3所示:-21 -import requestsimport csvimport codecs-u
56、rl = hi tp:. /bj. 53. com. pinpaiongyu. pa page;.?minprice=2000 4000Hurl = http:/ls, 58. ccrai/hezu/pn(page?kev=%E59381%E7%89%8C%E5%85SAC%E5%AN93&Gmcke$E5蜘3%81%E7%8型 世已完成的页数字号初时为0page = 0Csv_fil = file(rent2. c&vcsv_file, write (codecs. B0M_nF8),csv_aTiter = csv,writerhtrol : Beautiful Soup! respons
57、e. texth)house_list = html. select C. listll L/:并循环在读不到新的房源时结束if not house_list:breakfor house in hoii5e_list: try:house_title = house, findh2), f:ndW get_txtL strip=True. encode(utf8*)house_url = urljcinturL house, select 0 C rhref*.!house_info_list = hoiie_tiTleL split 0a如果第二到是公寓名则取第一列作为地址*“house_
58、location - house, select C*, add a* 01. get_text strip=True), encodef8)-print house_lacationhouse_money = house, selectmoney10. aelect (b) 0:. string, encode(utf8)print崛 (house.title, house_location, househouse_url)csv_BTit&r,Titer&w(rhouse_titlen h?use_locationH hou5e_nioiiey? house_url.) except;pa
59、sscv_fil closeO图5.3爬虫程序爬取的租房的房源信息将会生成一个单独的CSV文件并保存到其中,如图5.4所示:L111金离费。您关9&3 h,ttp77lz. 5S. coa.-hs3 -34O6D0S557llO17x_ shtnl2离卷小区,&津12S3 h.ttp:/i.5S.co0. head IK后割M门2普66Hdit町】3;S月莲.东航市场1就用ht邙;,乐髓,co,h诩 338箱?和TS3M& htu3l4,河北及黄河北映 http:/slier?a 5B,B2M53d0a4Kf-a7O9-lQ3Cf327e -t=nh-x_v_3S17C665061fl2-lr
60、feTkn4l=l5户关十子J西站1260 http:/ort.5B_con.-z WGkfcesAl耻匕优骑肝林之岫1双lOMU hat瞅gnh-W-uK_epIij&M横搞特湖所也Kn4end=mdE 哥美或熟 1 将美http:/ 3hGrr.5&7/Tdq 44fW2b3f E6d-4af3-TFK64373b435法ar日N=nhT7f _0%.3321湖428043吐是Fknll=l9黄河北国:ift国北1300 http!/diort. 5B.cDii-z4Lp.flfl4Tffc-a6-c7d-&6b3-44)aKllcd49 ?tarBet-nh.-3-xsk_ephv_65
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024高端汽车租赁服务详细协议
- 2024导演合作拍摄协议细则
- 董事长的具体职责职能模板范文5篇
- 2024年度环保垃圾清运服务协议模板
- 2024年个人合伙权益股份转让协议
- 安检服务人员2024劳动协议样本
- 2024年建筑项目安全保证协议
- 文书模板-《合伙销售白酒合同》
- 2024年教育培训业务合作协议
- 2024年度车辆租赁化三方协议
- 妇产科学课件:胎心监测
- 新苏教版科学四年级上册学生活动手册习题与讲解
- 基础护理质量标准及考核评分表
- 商务条款响应表
- 二年级上册美术教案-7. 去远航 -冀教版
- 二年级上册语文课件-10《日月潭》|人教(部编版) (共19张PPT)
- 《诗情画意》教学设计
- 中华文化与传播教材课件
- Unit3 Sports and Fitness Reading for writing健康生活讲义-高中英语人教版(2019)必修第三册
- Unit 4 Viewing Workshop 课件-高中英语北师大版(2019)选择性必修第二册
- 血尿尿频尿急尿痛课件
评论
0/150
提交评论