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。
