当前位置:文档之家› 高德地图API实战

高德地图API实战

高德地图API实战
高德地图API实战

摘要

随着计算机网络的飞速发展,Internet技术越来越广泛的应用,网络覆盖的区域不断扩大,给网络数据采集应用带来了蓬勃发展的机遇。采用全新的计算机网络和爬虫系统,将提高网络数据采集管理效率,是改善信息获取的重要手段之一。近几年来,人们越来越意识到网络数据的获取才是企业竞争的核心,因此对网络数据的分析已经是最重要的资源之一。

高德地图是中国领先的数字地图,其中包含了数量庞大的位置信息和数据,同时高德地图还有导航等功能;在移动互联网的时代下,不仅仅是移动入口应用,更是人们与许多事物之间的桥梁。高德地图API,是由程序语言编写的应用程序接口,它能够帮助人们在网站或移动端中构建功能多样、交互性强的地图应用程序。除了基本地图功能的接口外,API还提供了诸如地点搜索、路线规划、定位、地址解析、行政区查询等数据服务;而高德地图最重要的功能就是定位导航,所以运用高德地图就方便人们实现了许多功能。

本次毕业设计将租房数据与Python网络爬虫进行了有机结合,通过调用高德地图API,能够实现有效的管理租房数据信息,抓取最受欢迎的租房信息以及地图信息,管理抓取的租房数据,方便租房数据查询,提高人们的工作效率。

关键词:高德地图API;Python网络爬虫;租房数据管理

Abstract

With the rapid development of computer network, 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 efficiency 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 most 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 things. 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, 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 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 people's working efficiency.

Key Words:Goethe map API; Python web crawler; Rental data management

目录

摘要..................................................................................................................................... I Abstract ..................................................................................................................................... II 1 绪论. (1)

1.1 研究背景 (1)

1.2 研究现状 (1)

1.3 研究内容 (2)

1.4 论文组织结构 (2)

1.5 本章小结 (3)

2 相关技术介绍 (4)

2.1 高德地图API (4)

2.2 网络爬虫介绍 (4)

2.3 Python的介绍 (5)

2.4 本章小结 (7)

3 需求分析 (8)

3.1 概述 (8)

3.2 可行性分析 (8)

3.2.1 操作可行性 (8)

3.2.2 经济可行性 (9)

3.2.3 技术可行性 (9)

3.3 功能需求分析 (9)

3.4 开发环境需求分析 (9)

3.5 性能要求 (10)

3.6 本章小结 (10)

4 系统设计 (11)

4.1 总体设计 (11)

4.2 Python爬虫设计 (12)

4.2.1分析页面 (12)

4.2.2 编写Python脚本 (13)

4.3 地图标识设计 (15)

4.3.1 地图API点标识设计 (15)

4.3.2 多种Marker样式在地图上进行标注 (15)

4.3.3 使用默认图标来标注地理位置 (16)

4.4 爬虫租房数据配置 (18)

4.5 本章小结 (19)

5 功能设计 (20)

5.1 总体模块分析 (20)

5.2 租房模块搜索 (21)

5.3高德地图标识设计 (23)

5.4 本章小结 (25)

6 设计测设 (26)

6.1 设计测设方法介绍 (26)

6.2 功能测试 (26)

6.3 测试方法 (26)

6.4 测试概况 (26)

6.5 设计性能测试 (27)

6.6 测试分析 (27)

6.7 本章小结 (27)

结论 (28)

致谢.................................................................................................. 错误!未定义书签。参考文献. (28)

附录A Python爬虫程序......................................................................... 错误!未定义书签。附录B 调用高德地图API程序............................................................ 错误!未定义书签。

1 绪论

1.1 研究背景

随着网络日益发展及生活水平的提高,地图服务呈现多样化趋势,地图开发产业得到长足发展,市场涌现出大量各有所长的地图API;根据各个公司GPS产业的开发规划,必须要对目前主流的相关地图的API接口的功能,特性等内容进行分析和研究,设计出符合市场需求且具有竞争力的产品,而高德地图服务功能全面,所以,设计有效的高德地图API就有了必要性。现在社会的许多领域绝大部分都朝着数字化处理业务及信息化办公的趋势在发展,加上计算机在人们日常中的使用,不仅丰富了人们的日常生活也加快了人们的生活节奏。随着互联网的迅速发展,越来越多的用户对应用软件的需求也变得越来越多,其中对对租房数据的需求就是其中的一种。网络爬虫就是这个互联网信息时代的产物,它是快速便捷地获取信息的一种工具。它的出现彻底的改变了人们对租房数据的看法,使用它可以获得很多传统搜索租房数据方式无法拥有的体验,它既拥有传统收集方式的准确性,又拥有传统方式无法拥有的即时性、便利性。

在如今互联网的时代下,58同城等这样的网站虽然满足了人们房屋出租信息的需求,但58同城等网站上的租房信息并不能直观的给用户展示出来,如对某个房源的地理位置,公交线路等方面并不能直接在地图上展示给用户,而要直观展示这些信息,就需把58同城等网站的租房信息与高德地图API相结合,通过调用高德地图API来给用户进行直观的展示。

1.2 研究现状

随着地图API技术的日益成熟,现如今在网站开发中为用户提供其感兴趣的相关地理信息,成为提升用户体验效果、体现网站综合设计水平的重要手段。例如当人们想选择一个新的居住地时,必然会对其周边的公共交通设施、教育设施、医院、银行等倍加关注,例如58同城的租房信息等;在此类网站中利用地图API技术就可以构建功能丰富的地图交互应用,从更加真实客观的角度给用户以满意的信息回馈。在市场上所熟知的数字地图中,高德地图以32.4%的用户使用率在地图中排名第二,这说明还是有相当多的人在选择使用高德地图。同时,高德地图是基于信息技术和互联网技术建立起来的地图软件,它的功能强大、更新速度快,还可以通过图片等形式直观展示地理信息,而且它作为一个免费软件还可以为其它程序提供对应接口,实现基于高德地图的二次研发。充分利用高德地图API的优势来完成地理信息分析与评估、位置选择等工作。因此,本次毕业设计课题选择调用高德地图API来实现网络爬虫爬取数据的展示管理。

通过调用高德地图API来展示网络爬虫爬取的租房数据是一种快速有效的满足客户的租房数据需求的方式,客户访问后可快捷的进行租房数据挖掘、租房数据搜索,并且可以根据用户的个人情况,并根据搜索的时间,方便用户快速选择关心的信息并迅速地地图中查到相关租房地址,所以具有很高的便利性。

1.3 研究内容

本课题利用Python实现一个网络爬虫,用来实现对诸如对58同城等网站信息的抓取,具体就是利用Python爬虫爬取58同城的租房信息;然后调用高德地图API对Python 爬虫爬取的信息在高德地图上做标注。优势在于快捷查询、方便操作、方便维护精确信息,让管理者充分了解各种的基本信息,大大降低了企业人力资源管理的人力和成本,使信息维护工作变得轻松和高效。

该课题通过使用Python的scrpy框架,在分析网页dom结构的基础上抓取信息,学习使用高德地图API中数据可视化的方法,实现所爬取数据的可视化;Python代码简单明了,适合根据实际情况快速修改代码,且Python 有scrapy 这样成熟的框架,不必要从0开始,所以只需要学习Python的基本语法和Python中自带库及第三方库的简单使用,例如Python的scrapy框架和Python中Requests、BeautifulSoup、CSV 等库的使用;同时还要学习高德地图API的使用,掌握数据可视化的基本知识,这里主要用到的是高德地图API的点标识技术。

此次通过网络爬虫租房数据的需求进行了分析后,设计及实现了Python爬虫,并调用高德地图API技术在高德地图中标识出来,主要工作有:

1、在使用中先进行了了解业务流程,并开始撰写相关需求的分析。

2、根据课题具体的需要,分析和设计功能框架结构。

3、根据对使用者进行需求分析后进行总体设计,设计出结构图。

4、编写相关的开发技术文档。

5、编写代码。

6、对课题设计进行单元测试。

1.4 论文组织结构

本论文的整体组织结构如下:

第一章:引言。主要介绍本课题的研究背景,研究现状以及研发内容。

第二章:相关的技术和工具的介绍。主要介绍了高德地图API、网络爬虫和Python 语言。

第三章:需求分析。说明了课题设计的需求分析和开发环境需求分析,包括操作可性,经济可行性,技术可行性等。

第四章:系统设计。介绍了课题的总体设计和详细设计以及Python爬虫租房信息数据配置。

第五章:功能设计。介绍了课题功能的设计,包括系统功能要求、租房搜索模块以及高德地图标识设计。

第六章:设计测设。课题设计功能实现测试,介绍了详细的测试方法和分析。1.5 本章小结

本章通过在网上搜索及查阅资料,主要介绍了课题的研究背景,研究现状和研究内容,说明了此课题实际的作用和功能,以及研发此课题设计所需要掌握和了解的内容。

2 相关技术介绍

2.1 高德地图API

Godard地图API是由Godard软件公司提供的调用地图的接口方法。用户的应用程序可通过Godrad地图API提供的接口方法处理地图数据,并且实现位置相关或地图相关应用。例如,通过高德地图API,将地图的数据集成到自己的的应,大大用程序中,一些地理位置信息可以在地图上进行标记,并以非常直观的的形式显示给用户。高德地图API还将增加自动驾驶,公共公交,地铁和行人路线规划API。同时,还将增加对矢量地图的支持,大大提高地图下载速度,近期还将增加3D街道地图和其他个性化地理数据。

要创建一个地图,需要在一个页面布局中扩展地图活动及实现地图视图类。必须设置"android:apiKey"才能在应用中使用地图视图获取地图数据。在模拟器环境中,可以通过申请调试API 秘钥,进行程序开发。但在发布时,必须申请签名证书的API秘钥,并替换MapView中的调试API秘钥。

Godard地图API,是由JavaScript 语言编写的应用程序界面,可以帮助人们在网站或移动端中建立功能丰富的交互式地图应用程序。除了基本地图功能的界面之外,JavaScript API也提供了一些数据服务,例如位置搜索、路线规划、定位、地址解析和管理区查询,这些查询服务可以根据自己的需求有选择的进行操作使用。

2.2 网络爬虫介绍

Web爬虫是一个自动提取网页的程序,从万维网下载搜索引擎的网页是搜索引擎的重要组成部分。传统爬虫从一个或多个初始页面获取URL。在捕获Web数据的过程中,不断地从当前页面中提取新的网址并放置在队列中,直到满足系统的一些停条件并因此停止,而更难集中在爬虫的工作流上。所以有必要过滤基于网页分析算法的主题无关链接,保存有用的链接并将他们放在等待获取的URL队列中。选择从队列中的下一页URL 按照一定的搜索策略,并重复该过程直到系统达到一定的条件。此外,爬行器抓取的所有页面都将由系统存储。对于聚焦爬虫,该过程得到的分析结果对后续爬行过程具有反馈和指导作用。

为了提高爬行效率,爬虫需要尽可能多的高质量的页面单位时间。有五种方法来表示页面质量:页面和爬行主题之间的相似性。为了提高爬行速度,Web图中的曲面位置是并行的(并行问题)。网络通常在并行爬行中工作,并引入了新的问题:可重复性(并行爬虫或爬行线程在同时运行时添加重复页面),质量问题(并行运行时,每个爬行器或线

程只能获取部分页面,导致页面质量和通信带宽的成本降低(当并行运行时,每个爬虫或爬虫线程之间的一些通信是不可避免的)。Web爬虫通常使用三种方式:独立(单个爬虫爬虫页面、非通信、动态分配(由中央协调器对单个爬行动物进行URL动态协调分配,预先将URL静态分配给每个爬行动物)。

通用网络爬虫也被称为可伸缩的Web爬虫。爬行对象从一些种子网址扩展到整个Web,主要是为房屋搜索引擎和大型Web服务提供商收集租赁数据。他们的技术细节很难被展现。这种类型爬虫的特点是范围和数量庞大,它需要很高的爬行速度和巨大存储空间。爬行页面种类相对较少,而且因为页面太多需要刷新,所以通常采用并行模式,但是刷新页面需要花费很多的时间。随着Internet的飞速发展,万维网已经变成了许多信息的载体。如何有效地提取和利用这些信息成为一个很大的难题。作为帮助人们检索信息的工具,它成为用户访问万维网的网关和指南。然而,这些通用搜索引擎也存在一些限制性,例如:

1、在不同的领域,背景不同的用户往往有不同的检索目的和要求。通用搜索引擎返回的结果包括了大量用户不需要的页面。

2、利用通用搜索引擎目标指的是最大限度地扩大网络覆盖范围。在有限搜索引擎中服务器和网络租房数据采集资源之间冲突会变得更加激烈。

3、网络形式的丰富性加上Internet技术的不断发展,以及大量不同租房数据的出现,如图片和租房数据等。在一般情况下,互联网搜索引擎将无法查找和获取这些信息而且具有一定结构租房数据。

4、大多数搜索引擎都会进行关于关键字检索,这使得基于语义信息的查询难以支持。

虽然存在一些缺陷,但一般的Web爬虫适用于搜索引擎的各种主题的搜索,具有很强的应用价值。为了解决引擎受限的问题,出现了一种针对性的获取Web资源的关键爬虫。聚焦爬虫是一个自动获取网页的程序。它根据既定的爬行目标,有选择的访问万维网上的网页和相关链接。与通用网络爬虫不同,聚焦爬虫不追寻广泛的覆盖。相反,他们的目标是捕捉特定主体相关的网页,并准备为特定主体用户租用租赁数据资源。通用Web爬虫的结构可分为四个部分:页面爬行模块、页面分析模块、链接过滤模块、页面租借数据URL队列和初始URL采集模块。普通的网络爬虫采用了一定的爬行策略,常用的爬行策略有广度优先策略和深度优先策略。

2.3 Python的介绍

20世纪90年代以来,Python语言在系统管理、任务处理和Web编程中得到了广泛的应用。Python的创始人GuidovanRossum在1989决定在阿姆斯特丹开发一个新的脚本

解释器,以摆脱圣诞节的无聊。作为ABC语言的继承,Python被选为编程语言的名称,因为他是一个名为MontyPython的喜剧组的粉丝。ABC是Guido设计的一种教学语言。就Guido本身而言,该语言非常漂亮和强大,专为非专业程序员设计的。但是ABC语言并没有成功。其原因是Guido决定避免Python中的错误,因为他不公开。他还想要取得一些在ABC中还没有实现的东西。可以说,Python是从ABC发展而来的,主要受modula-3的影响,并结合Unixshell和C. Python已经成为最流行的编程语言之一。

2011年1月,被TIOBE评为年度最佳语言。由于Python语言的简单性、可读性和可扩展性,越来越多的科学计算机构使用Python。许多著名的大学已经利用Python来编入课程来上课,例如著名的卡内基梅隆大学的编程课。许多大学计算机科学和程序入门课程将使用Python语言教学。许多开源科学计算软件包提供Python调用接口。例如,有三个非常经典的科学计算扩展库,分别为Python提供快速数组处理的NumPy,SciPy 和Matplotlib。因此,由Python语言好人许多扩展库组成的开发环境将会非常适合于工程技术。科研人员处理实验租赁数据,制作图表,并有可能开发科学计算应用程序。2018年3月,语言作者在邮件列表上宣布Python 2.7将于2020年1月1日结束。如果用户希望在该日期之后继续获得与Python 2.7相关的支持,则必须向商业供应商支付费用。

Python的设计风格清晰、统一,使Python具有可读性、可维护性和广泛使用的语言,深受广大用户的欢迎。设计师的发展背后的一般想法是,对于一个特定的问题,只要有一个最好的方法来解决它。最重要的项目之一是Python的缩进规则。一个和大多数其他语言(如C)之间的区别是,模块的边界完全取决于该行上每一行的第一个字符的位置决定的。这是有争议的,因为自C语言诞生以来,语言的语法意义与字符的排列方式是分开的。一旦被认为是编程语言的改进,不能否认的是,Python通过强迫程序员在需要的模块中缩,使程序变得更清晰、更美观。

Python的语法简单,入手非常快,学习曲线低,可以通过命令交互来学习Python 的编程;Python编程灵活,即支持面向过程,又支持面向对象;Python除了本身编写外,还可以混合使用其他语言人,如C语言和Java语言等,除此之外本身具有很多丰富强大的库,包括Requests、BeautifulSoup、CSV 等库,每个库都有自身独特的作用,可以帮助实现不同的功能,所以选择用python来实现对网络爬虫的编写。

Requests库是Python中的一个HTTP网络请求库,它的作用是用于简化网络请求;因为Requests是基于urllib用Python语言编写的,并且使用Apache2许可的开放源代码协议的HTTP库,所以Requests将会比urllib更方便,能为人们节省大量的工作时间。

Beautiful Soup提供一些简单的Python函数,用于处理导航、搜索、修改分析树等功能,其中最主要的功能是从Web上获取取数据。它是一个工具箱,为用户提供解析

相关主题
文本预览
相关文档 最新文档