[数据]:百度地图抓取POI-尝试与反思
本文最后更新于10 天前,如有版本迭代或环境切变,可告知邮箱到xianghy_m@sina.com指正修改。

引入:

我想通过python,将百度地图网页端上,检索到的“深圳市”“星巴克”咖啡厅列表,以表格形式导出,请给出代码,并输出csv格式。

  1. 直接从网页端抓取数据通常涉及复杂的HTML解析和JavaScript执行,操作难度大,且容易受网站资源权限和更新影响。百度地图提供了Place API,可以用来搜索特定区域内的POI(兴趣点)
  2. 手动整理,稳定性佳,当检索项达到一定规模时,耗时增加,效率难以保证。

工具:

操作:

1、开放平台

① 获取ak ②生成代码 ③运行,详情可参考视频演示

2、代码获取

①kimi、②文心4.0,详见附录

3、运行终端Python

①pip installl pandas requests

②代码修正

以上效果:

替代在线工具:https://lbsyun.baidu.com/, 路径:

  1. 开发文档>Web服务API>地点检索>快速开始>开始使用

总结

1、无代码,api使用规则和限制超出理解,且在AI会话工具协助难以突破,解决办法:求助;

2、探索:及时止损,横向比较,是被接口规则改变、平台配额以及收费限制

3、沉没成本:平台(名词、文档、api、坐标),边际化、耗时多(万事开头难,选对方向)

附录:

import requests
import pandas as pd

# 你的百度访问应用AK
AK = '你的AK密钥'

# 百度地图Place API的请求URL模板
url_template = 'http://api.map.baidu.com/place/v2/search'

# 请求参数
params = {
    'ak': AK,
    'query': '萨莉亚',
    'region': '深圳市',
    'output': 'json',
    'page_size': 20,  # 每页返回的结果数量
    'page_num': 0     # 页码,从0开始
}

# 初始化结果列表
results = []

# 循环获取数据
while True:
    response = requests.get(url_template, params=params)
    data = response.json()
    
    # 检查API响应状态
    if data['status'] != 0:
        print(f"API请求失败,状态码:{data['status']}, 错误信息:{data.get('msg', '无错误信息')}")
        break
    
    # 检查是否有结果返回
    if data['total'] == 0:
        print("没有找到任何结果。")
        break
    
    # 提取结果数据
    results.extend(data['results'])
    params['page_num'] += 1
    
    # 可选:打印原始数据以进行调试
    # print(data)

# 检查是否获取到结果
if not results:
    print("没有获取到任何结果数据。")
else:
    # 将结果转换为DataFrame(注意:这里假设每个结果都是一个字典)
    df = pd.DataFrame(results)
    
    # 打印DataFrame的列名以进行调试
    print(df.columns)
    
    # 根据实际的列名调整selected_columns
    # 注意:这里的列名需要根据你的实际数据来调整
    selected_columns = ['name', 'address_detail', 'location', 'tel']  # 示例列名
    
    # 检查selected_columns中的列名是否在df的列中
    missing_columns = set(selected_columns) - set(df.columns)
    if missing_columns:
        print(f"警告:以下列名在DataFrame中不存在:{missing_columns}")
    else:
        # 选择列并导出到CSV文件
        df = df[selected_columns]
        df.to_csv('shenzhen_sariya_restaurants.csv', index=False, encoding='utf-8-sig')
        print("数据已导出到 shenzhen_sariya_restaurants.csv")
文末附加内容
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇