利用百度地图进行爬虫,首先要在百度地图API官网上注册并创建应用AK,如下图。

点击创建应用,设置应用名称。

其他设置按照系统提示选择,点击提交即可。

那么我们只需要应用的AK即可。如果免费的流量不够用,可以申请开发者得到更多的流量。下面进入正题。直接上代码。

import requests

from tqdm import tqdm

def baidu_map_search():

apk_key = "vSj23PqoC3nFXTOwW9xwRifMGiVjo3bV"#这部分写你自己的应用AK

url = "http://api.map.baidu.com/place/v2/search"#官方规定,不用改

types = [  '酒店', '美食'  ]#爬虫数据分类,根据自己需求设置

with open('region.txt', 'r', encoding='utf-8') as f:

regions = f.read()

regions = regions.split('、')#regions里是我自己的搜索范围,这里我是按省市划分的

region_index = 0

type_index = 0

page = 0

f = open('pos_{}.txt'.format(type_index), 'w', encoding='utf-8')

while True:

params = {

"query": types[type_index],

"output": "json",

"ak": apk_key,

"region": regions[region_index],

"page_size": 20,

"page_num": page,

"scope": 1,

}#官方规定

page += 1

response = requests.get(url, params)

result = response.json()

status = result.get("status")

message = result.get("message")

if status != 0 and status != 2:

raise Exception(message)

data = result.get("results", {})

if len(data) == 0:

region_index += 1

page = 0

if region_index == len(regions):

region_index = 0

type_index += 1

f.close()

f = open('pos_{}.txt'.format(type_index), 'w', encoding='utf-8')

if type_index == len(types):

f.close()

return

print('{} {} page:{} num:{}'.format(

regions[region_index], types[type_index], page, len(data)))

for row in data:

item = {

"name": row.get("name", "")

}

for k, v in item.items():

if '市' in v:

continue

f.write(v.split('(')[0]+'\n')

if True:

baidu_map_search()

results = []

for i in range(11):

with open('pos_{}.txt'.format(i), 'r', encoding='utf-8') as f:

data = f.read().splitlines()

for v in tqdm(data):

if v[0] >= 'A' and v[0] <= 'z':

continue

if '州' in v or '县' in v or '市' in v or '区' in v :

continue

if v in results:

continue

results.append(v)

with open('pos_ch.txt', 'w', encoding='utf-8') as f:

for v in results:

f.write(v+'\n')

print(len(results))

除此之外,还有别的搜索规范,比如根据公里范围等等,具体的调用方式可以参考官网给的格式。

不喜勿喷,欢迎交流。

百度地图爬虫——小试牛刀相关推荐

  1. 百度地图爬虫——获取某区域所有中学附近的网吧数据

    本文思路如下:调用百度地图API获取某区域内所有中学信息,依次获得每个中学的地理坐标,查询该坐标一定半径周围内所有网吧数据,将学校数据和网吧数据依次存入txt文件中. 一.百度地图API密钥申请 申请 ...

  2. python抓取百度地图数据_Python 百度地图爬虫 - 搜索数据采集

    class Hot_City_Coordinates(): """获取热门城市""" def __init__(self): self.he ...

  3. python批量爬取小网格区域坐标系_Python爬虫实例_利用百度地图API批量获取城市所有的POI点...

    上篇关于爬虫的文章,我们讲解了如何运用Python的requests及BeautifuiSoup模块来完成静态网页的爬取,总结过程,网页爬虫本质就两步: 1.设置请求参数(url,headers,co ...

  4. python: 百度地图api爬虫

    python网络爬虫的本质就是两步: 设置请求参数(url,headers,cookies,post或get验证等)访问目标站点的服务器: 解析服务器返回的文档,提取需要的信息. 而API的工作机制与 ...

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

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

  6. python爬取百度地图_python 爬虫百度地图的信息界面的实现方法

    python 爬虫百度地图的信息界面的实现方法 发布时间:2020-09-23 00:02:08 来源:脚本之家 阅读:78 作者:猫苘 在爬虫百度地图的期间,就为它做了一个界面,运用的是PyQt5. ...

  7. 爬虫实践:通过百度地图API获取省份公园数据

    目标 通过百度地图Web服务API获取中国所有城市的公园数据,并且获取每一个公园具体的评分.描述等详情,最终将数据存储到MySQL数据库中. 实践准备 百度地图Place API的地址为 http:/ ...

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

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

  9. python 接入百度地图数据包下载_Python爬虫-利用百度地图API接口爬取数据并保存至MySQL数据库...

    首先,我这里有一份相关城市以及该城市的公园数量的txt文件: 分析-02.png 其次,利用百度地图API提供的接口爬取城市公园的相关信息. 所利用的API接口有两个: 1.http://api.ma ...

最新文章

  1. idea创建mybatis的config.xml和mapper.xml方法
  2. windows10自动填充密码开机自动登陆
  3. 学习笔记14-C语言-小项目-通讯录
  4. Junit4中Test Suite的用法
  5. VSCode配置JAVA开发环境,java初级面试笔试题
  6. Go语言的变量、函数、Socks5代理服务器 1
  7. 乳化液稳定剂php,乳化液稳定剂PHP对小于0.1mm煤泥浮选的影响
  8. 基于相关向量机RVM的分类算法
  9. 浏览器获取京东cookie教程
  10. Pandas的read_excel()函数读取excel时遇到身份证含空值(pandas识别nan为float类型)自动变成科学计数法的解决办法
  11. 采购订单文本复制规则
  12. mysql 测试数据库employees导入
  13. OpenGL(5)Texture - 两张图片
  14. 如何将centos 语系设置成为中文
  15. CCNA理论学习笔记整理(一)
  16. Calendars and DateFormats should not be static
  17. 任岁月变迁,我心不惊
  18. [转载]用Java开发企业级无线应用
  19. 【蓝桥杯】第11届Scratch国赛中级组第6题 -- 3D打印小猫
  20. python 数组打包_将4字节整数打包到bytearray或数组中

热门文章

  1. Ubuntu 16.04 使用校园网客户端上网
  2. 抖音小店入驻条件及费用最新版,2022抖音开店,商家入门指南
  3. ARM CM0 push和pop指令
  4. hostapd建立无线AP出现did not acknowledge association的解决办法
  5. 【亲测可用】云里黑白第十三回——解决出现问题,你的PIN不可用,单击以重新设置PIN,诊断启动,禁用服务
  6. 【ACWing】2715. 后缀数组
  7. 同时删除Excel表格中多行隔行空白行
  8. SDIO WiFi调试经验总结
  9. 美颜SDK有什么用?美颜SDK可以在直播和短视频中有哪些作用?
  10. 计算机基础应用在线免费答题,计算机应用基础简答题附答案.doc