如果你最近在微信搜 「python爬百度地图POI」「百度地图爬虫」「DrissionPage实战」,这篇刚好能解决你的核心痛点。
今天我用 Python + DrissionPage,不写复杂逆向,不碰加密参数,直接把百度地图的 POI 数据(名称 / 地址 / 电话 / 经纬度 / 营业时间)抓下来,做选址分析、竞品调研、数据大屏都非常香。
关键词:Python爬虫 · 百度地图 · POI数据 · DrissionPage · 充电站 · 数据获取
一、为什么要爬百度地图 POI?
POI(Point of Interest)是地图数据的核心,比如你想做:
✅ 城市充电站分布分析
✅ 商铺选址(餐饮 / 药店 / 超市)
✅ 竞品门店调研
✅ 物流网点规划
✅ 政府 / 企业数据大屏
这些场景,百度地图的 POI 数据是最直接、最稳定的来源之一。
二、为什么选 DrissionPage?
传统爬虫爬百度地图,通常面临两个坑:
❌ 接口参数加密,逆向难度高
❌ 滑块验证码,requests 搞不定
DrissionPage 的优势在于:
✅ 基于浏览器自动化,但比 Selenium 轻量
✅ 支持接口监听(listen),不用硬解析 HTML
✅ 遇到滑块验证码,人工点一下就能过
✅ 代码逻辑接近 requests,学习成本低
一句话:既能控制浏览器,又能像 requests 一样拿接口数据。
三、核心思路
1️⃣ 启动浏览器并监听接口
百度地图的 POI 数据是通过 XHR 接口 返回的,而不是写在 HTML 里。
所以我们用 DrissionPage 的 listen 功能,直接拦截接口返回:
dp.listen.start('?newmap=1&reqflag=pcmap')
这一步非常关键,它相当于在浏览器里开了一个“抓包器”。
2️⃣ 搜索关键词
模拟用户在搜索框输入,然后点击搜索:
dp.ele('css:.searchbox-content-common').input(keyword)dp.ele('css:#search-button').click()
此时浏览器会发起 POI 列表请求,我们的监听器就能拿到数据。
3️⃣ 解析接口返回的 JSON
百度地图的 POI 接口返回的是标准 JSON,结构清晰:
json_data = resp.response.bodypois = json_data.get('content', [])
每一条 POI 里,核心字段都在第一层,不需要多层嵌套解析:
name → 名称
addr → 地址
tel → 电话
business_time → 营业时间
x / y → 百度墨卡托坐标(经度 / 纬度)
4️⃣ 翻页逻辑(最稳的方式)
百度地图的“下一页”按钮,用 tid 属性 定位最稳:
next_btn = dp.ele('@tid=toNextPage', timeout=3)
配合滚动到底部,基本不会漏页:
dp.scroll.to_bottom()next_btn.click()
5️⃣ 数据写入 CSV(防乱码)
写入 CSV 时,一定要用 utf-8-sig,否则 Excel 打开是乱码:
open(filename, 'w', encoding='utf-8-sig', newline='')
四、爬取结果示例(充电站)
名称 | 地址 | 电话 | 营业时间 | 经纬度 |
|---|
特来电充电站 | 天河区xx路 | 400-xxx | 24小时 | 113.32, 23.12 |
星星充电 | 越秀区xx街 | 400-xxx | 00:00-24:00 | 113.26, 23.13 |
✅ 数据真实
✅ 坐标可用
✅ 可直接导入 GIS / 高德 / 百度地图
五、常见坑位(血泪总结)
❌ 坑 1:滑块验证码
解决:DrissionPage 会真实打开浏览器,出现验证码时人工滑一下即可。
❌ 坑 2:接口结构变化
解决:用 listen.wait() 拿原始 JSON,不要写死路径。
❌ 坑 3:翻页失败
解决:先 scroll.to_bottom(),再点下一页。
❌ 坑 4:中文乱码
解决:CSV 必须用 utf-8-sig。
六、这个爬虫能怎么用?
✅ 做城市基础设施分析(充电站 / 停车场 / 公厕)
✅ 商铺选址(餐饮 / 药店 / 便利店)
✅ 竞品调研(同品牌门店分布)
✅ 简历项目(爬虫 + 数据清洗 + 可视化)
✅ 公众号技术干货文(就像这篇)
七、适合谁看?
正在学 Python 爬虫 的同学
需要做 课程设计 / 毕业设计 的同学
做 数据分析 / GIS / 城市规划 的朋友
想写 技术公众号文章 的创作者
八、结尾
想爬哪个城市的 POI 数据?
评论区扣下你的 「关键词」(如:充电站 / 药店 / 肯德基)👇
我把 完整可运行代码 + DrissionPage 配置教程 发给你!
觉得有用记得 点赞 + 在看 + 转发 💖
关注我,持续更新 Python 爬虫实战项目 🐍🗺️
#Python爬虫 #百度地图 #POI数据 #DrissionPage #充电站 #数据获取