实现目的:爬取昆明市范围内的全部中学数据,包括名称、坐标。

先进入基础篇,本篇主要讲原理方面,并实现步骤分解,为python代码编写打基础。 因为是0基础开始,所以讲得会比较详细。 如实现目的所讲,爬取昆明市全部中学数据,就是获取百度地图上昆明市范围内所有关键字带中学的地理信息数据(兴趣点)。 怎么把百度地图上的数据抓取下来呢? 以下是教程: 本篇目录如下: 1. 百度地图开放平台注册,AK获取 2.关于ak的说明 3.请求URL说明 4.百度地图坐标拾取器 5.以坐标范围获取兴趣点POI 6.用excel完成URL阵列

1.百度地图开放平台注册,AK获取。 (1) 如果想获取POI数据,首先要登陆百度地图开放平台(http://lbsyun.baidu.com/),完成注册。 这个平台是百度地图为开发者提供接口用的,有很多其他的功能,这里只讲POI爬取相关。 当然,有百度账号的话,直接登陆就可以。 这个界面很熟悉,不多说。

(2)登陆百度地图开放平台后,按照图面上的序号操作。 一、点击进入控制台; 二、点击进入创建应用; 三、起个应用名称; 四、如果有必要,设置个IP白名单啥的,限制调用ak的电脑; 五、提交。 六、其他默认,不用改。

然后你就能看到自己创建的ak了。

2.关于ak的说明。 关于这部分的解释,详细的可以看开发文档——web服务API部分。

这里说一下配额方面的问题。 首先百度不支持你创建了一个ak就可以随便用,对于大多数未认证用户,每天的配额是有限的,不能超过十万次,每分钟不能超过6千次。 当然这个配额主要是触发定位功能的。 在爬取POI上,用一次ak生成的URL页面只能显示20个兴趣点的信息,而一个坐标范围内,最多能生成20个URL页面。 也就是说,一个坐标范围内,用ak生成的URL页面最多能爬取到400个兴趣点的信息。 如果昆明市中学不超过400个,那么一个坐标范围就够了,但是如果超过400个,那就不够用了。 关于ak配额的说明先到这里,下面的步骤详解中还会涉及到。 3.请求URL说明。 把下面这个网址复制到浏览器里看看。 http://api.map.baidu.com/place/v2/search?query=中学&region=昆明&output=json&ak=9s5GSYZsWbMaFU8Ps2V2VWvDlDlqGaaO 是不是生成了下面的一个页面?

这就是爬取到的一页昆明中学的信息。 然后我们分段解释这行URL。 http://api.map.baidu.com/place/v2/search?query=中学&region=昆明&output=json&ak=9s5GSYZsWbMaFU8Ps2V2VWvDlDlqGaaO http://api.map.baidu.com/place/v2/search? 这个前缀就是在百度地图(API)上寻找。 query=中学 查询关键字是中学。 region=昆明 查询地区是昆明。 output=json 以json格式来输出。 ak=9s5GSYZsWbMaFU8Ps2V2VWvDlDlqGaaO ak是9s5GSYZsWbMaFU8Ps2V2VWvDlDlqGaaO。(这个就是刚才申请的ak,图上打了马赛克,我为了写教程便于理解,没有给它设置IP白名单,就放在这里了,大家练习用吧。) 这行URL很好理解,照猫画虎,如果我要找北京的饭店,其URL就是:http://api.map.baidu.com/place/v2/search?query=饭店&region=北京&output=json&ak=9s5GSYZsWbMaFU8Ps2V2VWvDlDlqGaaO

但我们发现,网页上呈现的数据一共就四五条,昆明的中学,北京的饭店,不可能就这么几个。 接着以昆明的中学为例,对这个URL进行改进。 http://api.map.baidu.com/place/v2/search?query=中学&region=昆明&page_size=20&page_num=0&output=json&ak=9s5GSYZsWbMaFU8Ps2V2VWvDlDlqGaaO 把这个URL复制到浏览器里看一看,仔细数一下网页上爬下来的中学数量,20个。 从这个实践中能理解上文中提到的,每个URL页面只能显示20个兴趣点的信息了吧! 然后把两个URL仔细对比一下: 第一个: http://api.map.baidu.com/place/v2/search?query=中学&region=昆明&output=json&ak=9s5GSYZsWbMaFU8Ps2V2VWvDlDlqGaaO 第二个: http://api.map.baidu.com/place/v2/search?query=中学&region=昆明&page_size=20&page_num=0&output=json&ak=9s5GSYZsWbMaFU8Ps2V2VWvDlDlqGaaO 看看这两个有什么不同? 第二个多了一个page_size=20&page_num=0,这个是什么意思呢?一共能生成20个URL页面,这个是第0个,我们知道,程序语言的排号,一般都是从0开始的。 把page_size=20&page_num=0改成page_size=20&page_num=1,试一试,看看第二个页面生成了什么,再改成page_size=20&page_num=2…… 改成page_size=20&page_num=19的时候,URL是http://api.map.baidu.com/place/v2/search?query=%E4%B8%AD%E5%AD%A6&region=%E6%98%86%E6%98%8E&page_size=20&page_num=19&output=json&ak=9s5GSYZsWbMaFU8Ps2V2VWvDlDlqGaaO。

这回我们知道了URL最多就能爬取400个兴趣点,那我们要获取的兴趣点数量远远超过400个,可怎么办呢? 别急,接着往下看。

4.百度地图坐标拾取器 在回答上面的问题之前,我们先了解一个工具,就是坐标拾取器。 进入开发文档——工具支持——坐标拾取器。 打开坐标拾取器,进入百度地图坐标拾取系统。

在这个拾取坐标系统上,一,先设定范围;二,在地图上点一下;三,看到当前坐标点如下,复制一下,就可以得到这点的百度坐标了。 自己估摸着一个矩形范围,拾取一个左下角坐标,再拾取一个右上角坐标。

要是实在估摸不好,找一张全国行政区划图看看。 这个稍微有点麻烦,我以后会再写一个教程介绍怎么获取行政区域范围。 拾取一个昆明范围的矩形坐标。 左下角:102.174112,24.390894 右上角:103.678942,26.548645 (获取矩形左下角和右上角坐标值的简捷方式在进阶篇中。)

5.以坐标范围获取兴趣点POI。 我们现在已经知道昆明的坐标范围了。 那么把上面的URL改一改。 这个是上文中的URL:http://api.map.baidu.com/place/v2/search?query=中学&region=昆明&page_size=20&page_num=0&output=json&ak=9s5GSYZsWbMaFU8Ps2V2VWvDlDlqGaaO 改动后的URL:http://api.map.baidu.com/place/v2/search?query=中学& bounds=24.390894,102.174112,26.548645,103.678942&page_size=20&page_num=0&output=json&ak=9s5GSYZsWbMaFU8Ps2V2VWvDlDlqGaaO 对比一下,有什么不一样的! 之前的范围属性是:region=昆明 改动后的范围属性是:bounds=24.390894,102.174112,26.548645,103.678942 注意,经纬度范围是bounds=左下角纬度,左下角经度,右上角纬度,右上角经度。 其他的都没有变化,以坐标范围爬取,也只能最多爬400个兴趣点。 好了,回答之前提出的问题,如果兴趣点数量远超过400个,怎么办? 可以把矩形范围分割啊! 把昆明市的范围换成经纬度,左下角和右上角构成了一个矩形,如果一块矩形中的兴趣点超过了400个,那么我们可以把这个矩形切分,变成四个矩形。分别获取四个小矩形范围内的兴趣点,然后汇总。 四个不够的话,切分成八个,八个不够的话,切分成十六个,只要保证每个矩形内兴趣点不超过400个就行。 至于应该切分多少个,怎么切分,靠经验,自己估摸。 说到这里,这就是后续python编程的思路了。

6.用excel完成URL阵列。 这个算是为之后的python爬虫脚本编写预热了。 我们用excel强化一下编码思路。

目的: 爬取昆明市中学的兴趣点POI。 关键词:中学 已有ak:9s5GSYZsWbMaFU8Ps2V2VWvDlDlqGaaO 昆明市坐标范围: 左下角:24.390894,102.174112 右上角:26.548645,103.678942 URL模板: http://api.map.baidu.com/place/v2/search?query=中学& bounds=24.390894,102.174112,26.548645,103.678942&page_size=20&page_num=0&output=json&ak=9s5GSYZsWbMaFU8Ps2V2VWvDlDlqGaaO

把坐标范围输入到excel中,计算4个矩形的范围,然后4个矩形对应4列URL(page_num值0到19),用excel函数生成了4列共80个URL。

在这些URL中,只有两个属性是有变动的,既是bounds(边界范围),page_num(页码0-19),其他都是不变化的。 URL的生成是有规律可循的。 这就是编程的思路,代码篇讲解。

转自-------http://blog.csdn.net/sinat_41310868/article/details/78746094

python爬虫百度地图_零基础掌握百度地图兴趣点获取POI爬虫(python语言爬取)(基础篇)...相关推荐

  1. 爬虫python代码广告_零基础掌握百度地图兴趣点获取POI爬虫(python语言爬取)(代码篇)...

    我是怎么想的,在新浪博客里写代码教程. 这篇博客的内容同步到了CSND博客中,那里不限制外链,也可以复制代码. http://blog.csdn.net/sinat_41310868/article/ ...

  2. 零基础掌握百度地图兴趣点获取POI爬虫(python语言爬取)(代码篇)

    好,现在进入高阶代码篇. 目的: 爬取昆明市中学的兴趣点POI. 关键词:中学 已有ak:9s5GSYZsWbMaFU8Ps2V2VWvDlDlqGaaO 昆明市坐标范围: 左下角:24.390894 ...

  3. 零基础掌握百度地图兴趣点获取POI爬虫(python语言爬取)(基础篇)

    实现目的:爬取昆明市范围内的全部中学数据,包括名称.坐标. 先进入基础篇,本篇主要讲原理方面,并实现步骤分解,为python代码编写打基础. 因为是0基础开始,所以讲得会比较详细. 如实现目的所讲,爬 ...

  4. python爬微信群_利用Python爬虫实现30秒爬取500篇微信文章

    引言 由于工作需要,给公司前端做了一个小工具,使用python语言,爬取搜狗微信的微信文章,附搜狗微信官方网址 ​ 从热门到时尚圈,并且包括每个栏目下面的额加载更多内容选项 ​ 一共加起来500+篇文 ...

  5. python发短信 金山_Python爬虫基础练习(四) 金山翻译爬取(进阶篇)

    上一篇文章金山翻译爬取(基础篇)讲到爬取金山翻译,并且实现了简单词汇的爬取,但是我们的报错信息都是一长串字符,就像这样 当然这个报错还是很容易看懂的,"列表索引超出范围",但是我们 ...

  6. python爬虫之爬取多篇含有关键词的文章标题和内容

    python爬虫之爬取多篇含有关键词的文章标题和内容 实现的功能 需要用到的库 需要对html一些标签有一定的了解 代码设计思想 源代码 功能优化 Java版本 实现的功能 输入想要搜索的关键字和输入 ...

  7. Python爬虫爬取一篇韩寒新浪博客

    网上看到大神对Python爬虫爬到很多有用的信息,觉得很厉害,突然对想学Python爬虫,虽然自己没学过Python,但在网上找了一些资料看了一下,看到爬取韩寒新浪博客的视频,共三集,第一节讲爬取一篇 ...

  8. Python爬虫,30秒爬取500+篇微信文章!太强啦!

    引言 由于工作需要,给公司前端做了一个小工具,使用python语言,爬取搜狗微信的微信文章, 从热门到时尚圈,并且包括每个栏目下面的额加载更多内容选项 一共加起来500+篇文章 需求 爬取这些文章获取 ...

  9. (一)基础:通过简单HTTP请求和正则进行数据爬取解析

    (一)基础:通过简单HTTP请求和正则进行数据爬取解析 文章目录 (一)基础:通过简单HTTP请求和正则进行数据爬取解析 发送简单http请求 如何使用代理ip发送请求 常用的User-Agent 发 ...

最新文章

  1. Bootstrap table表格
  2. 在CentOS_Linux版虚拟机中安装VMTools工具
  3. CentOS安装和配置Mysql
  4. 关于UseSubmitBehavior和OnClientClick同时使用,导致无法触发后台事件的问题
  5. JS三种简单排序算法
  6. 为什么Java需要lambda 表达式?
  7. 圆环自带动画进度条ColorfulRingProgressView
  8. java 81 08,Java更多的库谜题81:烧焦到无法识别
  9. 新一代大数据处理引擎 Apache Flink
  10. webpake-node-sass 报错
  11. Redis压缩列表原理与应用分析
  12. 数据结构 之 并查集(Disjoint Set)
  13. [转] Omnifocus 2 for mac license
  14. do while(false)实用技巧
  15. linux创建软连接记录
  16. C#例子 易懂故事 接口 委托 事件 异步通知 好玩.
  17. LINUX编译OpenJDK,也可以指定freetype
  18. 光储直流微电网能量管理。 系统主要由光伏发电模块、mppt控制模块、混合储能系统模块、直流负载模块、改进前的soc限值管理控制模块
  19. 飞信2009_那个时代独有的目光局限——浅谈“飞信”的兴衰
  20. Task already scheduled or cancelled(用Timer,TimeTask实现定时器功能)

热门文章

  1. Unity中的特殊的文件夹
  2. 误删代码,回收站又被清空还没有备份教你如何解决
  3. 二分查找的左右逼近法
  4. 一位Android大牛的BAT面试心得与经验总结,附答案
  5. python导入随机库_怎么用python导入随机库?
  6. 深圳夫妻随迁入户办理详解
  7. 要不做一名 Prompt Engineer
  8. 写给女儿高中编程课老师的一封信
  9. 计算机制图的特点和原理,计算机地图制图原理、特点及发展趋势
  10. 计算机杀毒有什么好处,电脑杀毒哪个最好?电脑杀毒的选择和使用