首页 > 编程问答 >Python 如何从 Google 地图短链接显示 X 和 Y?

Python 如何从 Google 地图短链接显示 X 和 Y?

时间:2024-05-31 13:44:22浏览次数:25  
标签:python

我有这样的 google 地图短链接: https://maps.app.goo.gl/wsmXZrYfP8V3ur2RA

I want python script to ask user to input google map link , then print X and Y

I user input : https://maps.app.goo.gl/wsmXZrYfP8V3ur2RA

python code will get full link ( https://www.google.com/maps/search/29.996966,+68.748251?entry=tts&g_ep=EgoyMDI0MDUyOC4wKgBIAVAD )then printx= 68.748251y=29.996966

import requestsfrom urllib.parse import urlparse, parse_qsdef get_coordinates(google_map_short_link):    # 获取完整的 Google 地图链接 response = requests.get(google_map_short_link) if response.status_code != 200: print("Failed to fetch the full link.") return None # 从响应中提取完整链接 full_link = response.url # 解析 URL 以提取经纬度 parsed_url = urlparse(full_link) query_params = parse_qs(parsed_url.query) coordinates = query_params.get('q') if coordinates: coordinates = coordinates[0].split(',') if len(coordinates) == 2: return coordinates[0], coordinates[1] return None, Nonedef main():    # 询问用户谷歌地图的简短链接 google_map_short_link = input("Please enter the Google Maps short link: ") # 获取坐标 x, y = get_coordinates(google_map_short_link) # 打印坐标 print("x =", x) print("y =", y)if __name__ == "__main__": main()
.
import requests
from urllib.parse import urlparse, parse_qs

def get_coordinates(google_map_short_link):
    """从谷歌地图短链接中获取经纬度坐标。

    Args:
        google_map_short_link: 谷歌地图短链接.

    Returns:
        一个元组,包含经度和纬度坐标 (x, y),如果获取失败则返回 (None, None).
    """
    try:
        # 发送 GET 请求获取完整链接
        response = requests.get(google_map_short_link)
        response.raise_for_status()  # 检查请求是否成功

        # 获取重定向后的完整链接
        full_link = response.url

        # 解析 URL 提取经纬度
        parsed_url = urlparse(full_link)
        query_params = parse_qs(parsed_url.query)
        coordinates = query_params.get('q')

        if coordinates:
            x, y = map(float, coordinates[0].split(','))
            return x, y
        else:
            return None, None

    except requests.exceptions.RequestException as e:
        print(f"Error fetching URL: {e}")
        return None, None

def main():
    """主函数,获取用户输入并打印坐标。"""
    google_map_short_link = input("请输入谷歌地图短链接: ")
    x, y = get_coordinates(google_map_short_link)

    if x and y:
        print("x =", x)
        print("y =", y)
    else:
        print("无法获取坐标。请检查链接是否有效。")

if __name__ == "__main__":
    main()

使用方法:

  1. 将以上代码保存为 Python 文件(例如, get_coordinates.py )。
  2. 在终端中运行该脚本: python get_coordinates.py
  3. 脚本会提示输入谷歌地图短链接。
  4. 输入链接后,脚本会打印出经度 (x) 和纬度 (y) 坐标。

代码说明:

  1. get_coordinates(google_map_short_link) 函数:
    • 使用 requests.get() 函数发送 GET 请求到短链接,获取完整链接。
    • 使用 urllib.parse.urlparse() 函数解析完整链接。
    • 使用 urllib.parse.parse_qs() 函数解析查询字符串,获取经纬度坐标。
    • 返回经纬度坐标。
  2. main() 函数:
    • 提示用户输入谷歌地图短链接。
    • 调用 get_coordinates() 函数获取坐标。
    • 打印坐标。

注意:

  • 此代码依赖于 requests 库。 如果尚未安装,请使用 pip install requests 进行安装。
  • 此代码假设谷歌地图短链接会重定向到包含经纬度坐标的完整链接。 如果谷歌更改了其链接结构,此代码可能无法正常工作。

标签:python
From: 78558285

相关文章

  • 用python写一个抖店选品的案例
    今天我使用Python编写抖店选品策略的简单案例。我们将使用pandas库处理数据,并假设你已经安装了pandas库。首先,我们需要准备以下数据:1.销售数据:包含商品、销售日期、销售额等信息。2.用户评价数据:包含商品、评价日期、评价分数等信息。3.库存数据:包含商品、库存信息。4.......
  • Selenium Python 无法找到仅有类的定义不清的网络按钮
    我拥有的HTML元素是YesCancel我想点击"是"按钮,因此我尝试了以下3种方法yes_driver2=driver.find_element("xpath",'//button[text()="Yes"]')yes_driver2.click()yes_driver3=driver.find_elements(By.XPATH,'//button[contains(text(),&q......
  • python 计算时间差小于15s的比例
    要计算时间差小于15秒的比例,可以在计算时间差后添加一个步骤。以下是更新后的代码:pythonimportpandasaspd#读取Excel文件df=pd.read_excel('your_file.xlsx',sheet_name='Sheet1')#遍历每一行,如果所有日期时间列都有效,则转换并计算时间差fori,rowindf.ite......
  • python excel从第二行开始找字段
    如果你需要从Excel文件的第二行开始读取数据,并且假设第二行是列名,你可以使用skiprows参数来跳过文件的第一行。以下是如何操作的示例:pythonimportpandasaspd#读取Excel文件,跳过第一行,假设第二行是列名df=pd.read_excel('your_file.xlsx',sheet_name='Sheet1',ski......
  • python-求点积
    【问题描述】:给出两个数组,并求它们的点积。【问题描述】:输入A=[1,1,1],B=[2,2,2],输出6,即1*2+1*2+1*2=6。输入A=[3,2],B=[2,3,3],输出-1,没有点积。完整代码如下:a=list(map(int,input().split()))b=list(map(int,input().split()))iflen(a)!=len(b):  print("-1")el......
  • python 使用面向对象思想解决案例
    要求:步骤一文件读取:父类子类1子类2测试效果图步骤二数据计算:步骤三可视化开发效果图知识点:魔术方法之字符串方法__str__,构造方法__init__pass关键字,占位语句,用来保证函数或类定义的完整性,表示无内容抽象类:含有抽象方法的类抽象方法:没有具体实现......
  • 关于 python 循环和 sqlalchemy
    defgetBeforePoint(userId):today=datetime.now()子查询=(db.session.query(T_user_point.acquired_at、M_promotion_code.valid_days、T_user_promotion_code.promotion_code_id、T_user_point.user......
  • Python 入门之阅目的 Pythonic(一)
    #免责声明:本文内容主要是肥清大神的视频以及自己收集学习内容的整理笔记,目是主要是为了让象博主这样的老白能更好的学习编号,如有侵权,请联系博主进行删除。1.注释#注释<Comments>:用来向用户提示或解释某些代码的作用和功能*可以出现在代码中的任何位置*Py......
  • pip is configured with locations that require TLS/SSL, however the ssl module in
     [root@dsc1mydjango]#pip3installdjangopipisconfiguredwithlocationsthatrequireTLS/SSL,howeverthesslmoduleinPythonisnotavailable.CollectingdjangoRetrying(Retry(total=4,connect=None,read=None,redirect=None,status=None))after......
  • Python——聊天机器人
    前端代码1#导入需要的包和库2fromchatterbotimportChatBot3fromchatterbot.trainersimportListTrainer,ChatterBotCorpusTrainer4fromflaskimportFlask,render_template,request56#创建Flask应用7app=Flask(__name__)89#创建一个聊......