欢迎访问宙启技术站
智能推送

Python编程中获取当前URL的常用技巧

发布时间:2023-12-16 08:47:21

在Python编程中,获取当前URL是一个常见的需求,比如在Web应用中实现根据不同的URL显示不同的内容,或者在网页爬虫中获取当前页面的URL。下面是一些常用的获取当前URL的技巧和使用示例:

1. 使用Python内置的urllib.parse模块解析URL:

from urllib.parse import urlparse

# 当前URL为http://www.example.com/page.html?param=value#fragment
url = 'http://www.example.com/page.html?param=value#fragment'
parsed_url = urlparse(url)

# 获取协议
protocol = parsed_url.scheme
print(protocol)  # 输出: http

# 获取域名
domain = parsed_url.netloc
print(domain)  # 输出: www.example.com

# 获取路径
path = parsed_url.path
print(path)  # 输出: /page.html

# 获取查询参数
query = parsed_url.query
print(query)  # 输出: param=value

# 获取URL片段
fragment = parsed_url.fragment
print(fragment)  # 输出: fragment

2. 使用Python内置的http.server模块获取当前URL:

import http.server
import socketserver

class MyHandler(http.server.SimpleHTTPRequestHandler):
    def do_GET(self):
        # 获取当前URL
        url = self.path
        print(url)

# 启动一个简单的HTTP服务器
with socketserver.TCPServer(("", 8000), MyHandler) as httpd:
    httpd.serve_forever()

启动HTTP服务器后,访问http://localhost:8000/page.html?param=value#fragment,控制台将输出/page.html?param=value#fragment

3. 使用Flask框架获取当前URL:

from flask import Flask, request

app = Flask(__name__)

@app.route('/')
def index():
    # 获取当前URL
    url = request.url
    print(url)

if __name__ == '__main__':
    app.run()

启动Flask应用后,访问http://localhost:5000/page.html?param=value#fragment,控制台将输出http://localhost:5000/page.html?param=value#fragment

4. 使用Django框架获取当前URL:

from django.http import HttpRequest

def my_view(request: HttpRequest):
    # 获取当前URL
    url = request.build_absolute_uri()
    print(url)

注意:上面示例中的my_view是一个视图函数,需要被绑定到URL路由中才能被访问到。

以上是一些常用的获取当前URL的技巧和使用示例,可以根据具体情况选择适合的方法来获取当前URL。