如何使用Python获取当前URL
我需要获取当前的URL,以便我可以检查查询字符串,例如
requested_url = "URL_HERE"
url = urlparse(requested_url)
if url[4]:
params = dict([part.split('=') for part in url[4].split('&')])
这也在Google App Engine中运行
答案 0 :(得分:51)
试试这个:
self.request.url
此外,如果您只需要查询字符串,这将起作用:
self.request.query_string
最后,如果你知道你正在寻找的查询字符串变量,你可以这样做:
self.request.get("name-of-querystring-variable")
答案 1 :(得分:3)
对于通过谷歌找到这个的人,
我想通了,
您可以使用以下方式获取当前请求的查询字符串:
url_get = self.request.GET
这是查询字符串的UnicodeMultiDict!
答案 2 :(得分:0)
试试这个
import os
url = os.environ['HTTP_HOST']
答案 3 :(得分:0)
我无法得到其他工作的答案,但这对我有用:
url = os.environ['HTTP_HOST']
uri = os.environ['REQUEST_URI']
return url + uri
答案 4 :(得分:0)
这是我在Python 3中从CGI(A)URL,(B)GET参数和(C)POST数据捕获的方式:
================================================ ========
导入sys,os,io
myDomainSelf = os.environ.get('SERVER_NAME')
myPathSelf = os.environ.get('PATH_INFO')
myURLSelf = myDomainSelf + myPathSelf
myQuerySelf = os.environ.get('QUERY_STRING')
myTotalBytesStr =(os.environ.get('HTTP_CONTENT_LENGTH'))
如果(myTotalBytesStr == None):
myJSONStr = '{"error": {"value": true, "message": "No (post) data received"}}'
其他:
myTotalBytes=int(os.environ.get('HTTP_CONTENT_LENGTH'))
myPostDataRaw = io.open(sys.stdin.fileno(),"rb").read(myTotalBytes)
myPostData = myPostDataRaw.decode("utf-8")
mySpy =“ myURLSelf:[” + str(myURLSelf)+“] \ n”
mySpy = mySpy +“ myQuerySelf:[” + str(myQuerySelf)+“] \ n”
mySpy = mySpy +“ myPostData:[” + str(myPostData)+“] \ n”
myFilename =“ spy.txt”
myFilePath = myPath +“ \” + myFilename
myFile = open(myFilePath,“ w”)
myFile.write(mySpy)
myFile.close()
================================================ ========
还有其他一些有用的CGI环境变量:
AUTH_TYPE
CONTENT_LENGTH
CONTENT_TYPE
GATEWAY_INTERFACE
PATH_INFO
PATH_TRANSLATED
QUERY_STRING
REMOTE_ADDR
REMOTE_HOST
REMOTE_IDENT
REMOTE_USER
REQUEST_METHOD
SCRIPT_NAME
SERVER_NAME
SERVER_PORT
SERVER_PROTOCOL
SERVER_SOFTWARE
==========================================
我正在使用这些方法通过MIIS在带有CGI的Windows Server上运行Python 3。
希望这可以为您提供帮助。
答案 5 :(得分:0)
您可以使用os
import os
url = os.environ
print(url)
这样,您将看到os.environ提供的所有数据。看来您需要“ QUERY_STRING”。像任何JSON对象一样,您可以像这样获取数据。
import os
url = os.environ['QUERY_STRING']
print(url)
答案 6 :(得分:0)
requests模块具有'url'属性,即已更改的url。
只需尝试:
import requests
current_url=requests.get("some url").url
print(current_url)