百度api爬虫(1)从百度api中爬取地点数据
几句废话————
百度api就是基于百度地图的开发接口,这么大的地图公司居然给开发接口真的很感激哎!
所以,言归正传。现在项目需求要把乌鲁木齐市内的所有清真寺都用矢量圈出来,然后做点统计啥的,最后做个专题图产品。
怎么把清真寺找出来?
领导的意思是你一个一个上网搜吧,这就是你的工作量。那我当然要想办法啊,边工作边学习工作才有意义嘛!
然后就发现百度api可以实现我的需求。其实可以通过python爬虫自动化实现整个流程,但是我还不会python,只能先凑合一下,通过api返回乌鲁木齐的清真寺的json查询结果,json转excel,再从excel导入arcgis。这些点和他们的性质就可以作为我圈矢量的参考啦!
——————————正文分割线————————————
先上结果,最后成功把乌鲁木齐市所有能搜到的清真寺都以点的形式导入了arcgis。
可以看到最终找到197个点,虽然还没对这些点进一步筛查,但已经很有用了。
第一步:注册称为百度开发者
参考文献一:如何获得poi点(points of interest):https://blog.csdn.net/WenWu_Both/article/details/70187605
1、申请一个百度开发者账号:http://lbsyun.baidu.com/,然后点控制台。
2.get一个ak
ak也就是一个信令,作为你可以使用百度api的密码。这个东西后面要不断地用到。点创建应用,随便起个名字,选浏览器端,白名单输入*。
至此,就拥有了一个ak。然后具体咋找poi(进行地点检索),一定要好好看官方文档:http://lbsyun.baidu.com/index.php?title=webapi/guide/webservice-placeapi
3.在行政区范围内搜索。
网上的大神们都偏向用矩形检索,因为只能返回最多400个点,但是我这个poi没有那么多,我就用行政区检索就可以了。
还碰到一个问题,我输入了行政区的外接矩形边框,但是不知道为啥搜出来的点反而比实际少?(少一半呢!)以后解决吧
针对我用的这个根据行政区划检索的办法,提供一点小小的技巧。
对于任何一个区域,都可以先做一下行政区检索,如果最后记录没超过400条,就进行这样的检索就可以。
如果记录超过400(也就是page_size=20&page_num=20)还是满记录,那就要分矩形区域进行检索了。
我的检索是这样的,比官方的必填参数多了page_size=20&page_num=0
把这个填上自己的ak,然后输入浏览器网址那里,点回车,就能看到根据限制条件找到的搜索结果啦。
http://api.map.baidu.com/place/v2/search?query=%E6%B8%85%E7%9C%9F%E5%AF%BA®ion=%E4%B9%8C%E9%B2%81%E6%9C%A8%E9%BD%90&output=json&coord_type=1&page_size=20&page_num=9&ak=你的ak
对部分参数进行解释。具体解释参考百度官方:http://lbsyun.baidu.com/index.php?title=webapi/guide/webservice-placeapi
参数名 | 参数含义 | 类型 | 示例 | 是否必须 |
---|---|---|---|---|
query |
检索关键字。行政区划区域检索不支持多关键字检索。 如果需要按POI分类进行检索,请将分类通过query参数进行设置,如query=美食 |
string(45) | 天安门、美食 | 必选 |
tag |
检索分类偏好,与q组合进行检索,多个分类以","分隔 (POI分类),如果需要严格按分类检索,请通过query参数设置 |
string(50) | 美食 | 可选 |
region | 检索行政区划区域(增加区域内数据召回权重,如需严格限制召回数据在区域内,请搭配使用city_limit参数),可输入行政区划名或对应cityCode | string(50) | 北京、131 | 必选 |
city_limit | 区域数据召回限制,为true时,仅召回region对应区域内数据。 | string(50) | true、false | 可选 |
output | 输出格式为json或者xml | string(50) | json或xml | 可选 |
scope | 检索结果详细程度。取值为1 或空,则返回基本信息;取值为2,返回检索POI详细信息 | string(50) | 1、2 | 可选 |
filter |
检索过滤条件。当scope取值为2时,可以设置filter进行排序。
industry_type:行业类型,注意:设置该字段可提高检索速度和过滤精度,取值有: hotel(宾馆);cater(餐饮);life(生活娱乐) sort_name:排序字段,根据industry_type字段的值而定。 1、industry_type为hotel时,sort_name取值有: default(默认);price(价格);total_score(好评);level(星级);health_score(卫生);distance(距离排序,只有圆形区域检索有效) 2、industry_type为cater时,sort_name取值有: default(默认);taste_rating(口味);price(价格);overall_rating(好评);service_rating(服务);distance(距离排序,只有圆形区域检索有效) 3、industry_type为life时,sort_name取值有: default(默认);price(价格);overall_rating(好评);comment_num(服务);distance(距离排序,只有圆形区域检索有效) |
string(50) | sort_name:distance|sort_rule:1 | 可选 |
coord_type |
坐标类型,1(wgs84ll即GPS经纬度),2(gcj02ll即国测局经纬度坐标),3(bd09ll即百度经纬度坐标),4(bd09mc即百度米制坐标) 注:"ll为小写LL" 坐标详细说明 |
int | 1、2、3(默认)、4 | 可选 |
ret_coordtype |
可选参数,添加后POI返回国测局经纬度坐标 坐标详细说明 |
string(50) | gcj02ll | 可选 |
page_size | 单次召回POI数量,默认为10条记录,最大返回20条。多关键字检索时,返回的记录数为关键字个数*page_size。 | int | 10 | 可选 |
page_num |
分页页码,默认为0,0代表第一页,1代表第二页,以此类推。
常与page_size搭配使用。 |
int | 0、1、2 | 可选 |
ak |
开发者的访问密钥,必填项。v2之前该属性为key。
申请密钥 |
string(50) | 必选 | |
sn |
开发者的权限签名。
Sn校验说明 |
string(50) | 可选,若开发者所用AK的校验方式为SN校验时该参数必须。 | |
timestamp | 设置sn后该值必填。 | string(50) |
设置sn后该值必填。 |
"page_size=20"就是说每页返回20个地点,如果不设置,那就默认0。
这个记录出现以后,发现每页上只有20条,也没有翻页按钮,如何翻页呢?
"page_num=0"其实是用来翻页的!想看第二页,就改成"page_size=20&page_num=1"。
然后下一篇讲一下如何把这些json结果转入excel。感兴趣的朋友移步:https://blog.csdn.net/weixin_43105618/article/details/90699543
不需要编程的方法,因为我暂时还不会编程o(╥﹏╥)o
百度api爬虫(1)从百度api中爬取地点数据相关推荐
- python爬虫多久能学会-不踩坑的Python爬虫:如何在一个月内学会爬取大规模数据...
原标题:不踩坑的Python爬虫:如何在一个月内学会爬取大规模数据 Python爬虫为什么受欢迎 如果你仔细观察,就不难发现,懂爬虫.学习爬虫的人越来越多,一方面,互联网可以获取的数据越来越多,另一方 ...
- 爬虫系列4:Requests+Xpath 爬取动态数据
爬虫系列4:Requests+Xpath 爬取动态数据 [抓取]:参考前文 爬虫系列1:https://www.cnblogs.com/yizhiamumu/p/9451093.html [分页]:参 ...
- python抓取表格数据_Python如何实现从PDF文件中爬取表格数据(代码示例)
本篇文章给大家带来的内容是关于Python如何实现从PDF文件中爬取表格数据(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 本文将展示一个稍微不一样点的爬虫. 以往我们的 ...
- python 扒数据_不踩坑的Python爬虫:如何在一个月内学会爬取大规模数据
Python爬虫为什么受欢迎 如果你仔细观察,就不难发现,懂爬虫.学习爬虫的人越来越多,一方面,互联网可以获取的数据越来越多,另一方面,像 Python这样的编程语言提供越来越多的优秀工具,让爬虫变得 ...
- python爬虫教程:实例讲解Python爬取网页数据
这篇文章给大家通过实例讲解了Python爬取网页数据的步骤以及操作过程,有兴趣的朋友跟着学习下吧. 一.利用webbrowser.open()打开一个网站: >>> import w ...
- 【爬虫】2.6 实践项目——爬取天气预报数据
1. 项目简介 在中国天气网(http://www.weather.com.cn)中输入一个城市的名称,例如输入深圳,那么会转到地址http://www.weather.com.cn/weather1 ...
- python百度翻译爬虫_Python的学习价值,python,爬,取,百度,翻译
# 功能: 进行爬虫项目编写 # 开发时间: 2020/10/26 10:12 import requests import json if __name__ == '__main__': #进行UA ...
- python爬虫学习教程,用python爬取新浪微博数据
爬取新浪微博信息,并写入csv/txt文件,文件名为目标用户id加".csv"和".txt"的形式,同时还会下载该微博原始图片(可选). 运行环境 开发语言:p ...
- 爬虫-练习引导-豆办电影爬取-json数据的处理
前面学的都是html内容的处理 本节爬的内容是json数据 豆瓣电影 想抓取什么样的类型? 选电影 https://movie.douban.com/explore#!type=movie&t ...
- 爬虫学习笔记(用python爬取东方财富网实验)
参考文章以及视频:(11条消息) 爬虫实战 | 爬取东方财富网股票数据_简说Python的博客-CSDN博客.手把手教你从东方财富网上获取股票数据_哔哩哔哩_bilibili.[Python爬虫案例] ...
最新文章
- php表单传值哪几种方式,PHP表单传值的方式有哪些?
- 这就是那个feature map256 256向量
- 告诉你你也学不会!中台灵感 SuperCell 的管理之道!
- php register_shutdown_function
- 微软开源Reactive Extensions
- response.setHeader各种用法 .
- 数据结构——最短路径之Dijkstra算法(与最小生成树的prime算法很像,建议一起看)
- U(优)盘安装FreeBSD-9.0+GNOME_lite桌面
- (Python)时序预测的七种方法
- python argvparser_Python ArgumentParse的subparser用法说明
- 内参、外参、畸变参数三种参数与相机的标定方法与相机坐标系的理解
- linux 创建进程 execl,linux中进程的vfork()和execl()函数
- 《LeetBook》LeetCode题解(1) : Two Sum[E]——哈希Map的应用
- eclipse git 上传工程 提交项目到 github
- 2021-08-13 初识servlet
- 微计算机与单片机原理及应用答案,单片机原理及应用(张毅刚)完整答案[一].pdf...
- NI MultiSim 正版软件的下载链接
- IDL实现TM遥感影像直方图统计(中值、均值、方差、众数及峰度系数计算)
- 计算机水平测试在线模拟,计算机等级考试一级模拟试题「附答案」
- 计算机学院实验报告,大学计算机实验报告-EXCEL电子表格实验