当前位置:首页>python>使用 Python 获取电话号码详细信息

使用 Python 获取电话号码详细信息

  • 2026-09-09 15:09:30
使用 Python 获取电话号码详细信息
关注+星标,每天学习Python新技能

来源:网络

在现代应用开发中,处理电话号码是一项常见的需求。无论是为了验证用户身份、自动填充国家/地区信息,还是为了进行初步的防欺诈检查,能够通过电话号码提取其背后的元数据都非常有用。

今天,我们将学习如何使用 Python 中的 phonenumbers 库,只需几行代码,就能获取任何电话号码的地理位置、运营商信息以及时区。

准备工作

我们将使用 phonenumbers 库,它是 Google 的 libphonenumber 库在 Python 上的移植版本,具有极高的准确性和权威性。

首先,请在你的终端中安装该库:

Bash

pip install phonenumbers

实战代码实现

下面是一个完整的脚本示例。它将解析一个字符串形式的电话号码,并将其分解为可读的地理信息和技术细节。

Python

import phonenumbersfrom phonenumbers import geocoder, carrier, timezonedef get_phone_details(phone_number):    try:        # 解析电话号码 (需包含国家代码,如 +86)        parsed_number = phonenumbers.parse(phone_number)        # 1. 获取地理位置描述 (中文显示)        location = geocoder.description_for_number(parsed_number, "zh")        # 2. 获取服务运营商名称 (中文显示)        service_provider = carrier.name_for_number(parsed_number, "zh")        # 3. 获取所属时区        time_zones = timezone.time_zones_for_number(parsed_number)        print(f"--- 电话号码详情: {phone_number} ---")        print(f"📍 地理位置: {location}")        print(f"📡 运营商: {service_provider}")        print(f"🕒 所属时区: {time_zones}")    except Exception as e:        print(f"解析失败: {e}")# 测试用例if __name__ == "__main__":    # 请确保输入的号码带有 '+' 和国家代码    test_number = "+8613800138000"     get_phone_details(test_number)

核心原理解析

在上述代码中,我们主要利用了 phonenumbers 提供的三个核心模块:

  • • geocoder:根据号码的前缀(如国家码和区号)返回对应的地理区域名称。通过设置语言参数为 "zh",我们可以直接获得中文地名。
  • • carrier:识别该号码所属的电信运营商。需要注意的是,如果号码发生了“携号转网”,该功能可能返回初始运营商信息。
  • • timezone:返回该号码所在地区的标准时区列表。

总结

利用 Python 处理这类任务非常高效。phonenumbers 库不仅可以用于获取信息,还能用于号码格式化(将本地号码转换为国际标准格式格式)以及合法性校验(判断一个号码是否真的存在)。

小贴士:在实际生产环境中,请始终要求用户输入带有国家代码(如 +86)的号码,以确保解析的准确性。

长按或扫描下方二维码,免费获取 Python公开课和大佬打包整理的几百G的学习资料,内容包含但不限于Python电子书、教程、项目接单、源码等等

推荐阅读

别再用 print 调试了!Python 官方推荐的日志实践指南

使用 Python 制作照片拼图生成器

Python标准库里藏着的7个代码简化利器

为什么 asyncio 要这样设计?一篇文章讲清楚核心原理

点击 阅读原文 了解更多

最新文章

随机文章