当前位置: 首页 > article >正文

python项目实战 查询手机号码归属地源码

 get_mobile_from.py

# 引入框架
import requests
from lxml import etree
from flask import Flask, render_template, request

# 创建一个app
app = Flask(__name__)


def get_phone_from(phone):
    # 发送请求的地址
    url = f"https://www.ip138.com/mobile.asp?mobile={phone}&action=mobile"

    # 直接请求会被网站屏蔽报错 需要伪装一下自己
    headers = {
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36 Edg/130.0.0.0"
    }

    # 发送请求
    resp = requests.get(url, headers=headers)

    # 设置字符集 中文显示
    resp.encoding = "utf-8"
    # 解析响应
    # print(resp.text)

    # 解析数据
    e = etree.HTML(resp.text)
    # xpath

    result = e.xpath("//tbody//tr//a[1]/text()")

    return result


# 主页
@app.route("/index")
def index():
    return render_template("/index.html")


# 定义路由地址
@app.route("/getPhoneFrom")
def getPhoneFrom():
    phone = request.args.get("phone")
    result = get_phone_from(phone)
    return render_template("index.html", result=result)


# 启动web服务
app.run(debug=True)

 index.html

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <form action="/getPhoneFrom" method="get">
        手机号:<input type="text" name="phone" id="">
        <input type="submit" value="查询">
    </form>
    <table border="">
        <tr>
            <td>手机号:</td>
            <td>{{result[0]}}</td>

        </tr>
        <tr>
            <td>归属地:</td>
            <td>{{result[1]}}</td>
        </tr>
        <tr>
            <td>运营商:</td>
            <td>{{result[2]}}</td>
        </tr>
        <tr>
            <td>区号:</td>
            <td>{{result[3]}}</td>
        </tr>
        <tr>
            <td>邮编:</td>
            <td>{{result[4]}}</td>
        </tr>
    </table>
</body>

</html>


http://www.kler.cn/a/376448.html

相关文章:

  • R语言结构方程模型(SEM)
  • java基础知识面试题四多线程
  • 【销帮帮-注册/登录安全分析报告-试用页面存在安全隐患】
  • SpringBoot实现zip压缩包下载
  • 029_Common_Plots_Matlab常见二维绘图
  • SQL Server身份验证模式
  • Node.js:Express 服务 路由
  • 工控一体机行业前景:智能化、自动化与高效能
  • 针对Hmaster启动后很快停止
  • 【大数据学习 | kafka】producer的参数与结构
  • NeurIPS - Ariel Data Challenge 2024
  • Maven讲解从基础到高级配置与实践
  • 恋爱脑学Rust之Box与RC的对比
  • ChatGPT新体验:AI搜索功能与订阅支付指南
  • layui 自定义验证单选框必填
  • CSS3新增边框属性(五)
  • Java基于微信小程序的私家车位共享系统(附源码,文档)
  • Vim的简单使用
  • 到底要不要用SAP Screen Personas
  • Vue中监听属性watch的求值,以及与computed的适用场景
  • 【开源免费】基于SpringBoot+Vue.J影城管理系统(JAVA毕业设计)
  • HuggingFace情感分析任务微调
  • Prompt Engineering (Prompt工程)
  • 产品定义和独开分类
  • Qt | windows视频播放器小项目
  • 基于SpringBoot的物品分类识别管理系统uniapp源码带文档教程