web-dev-qa-db-ja.com

Pythonで現在のURLを取得

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で実行されています

23
Alex

これを試して:

self.request.url

また、クエリ文字列だけが必要な場合、これは機能します。

self.request.query_string

そして、最後に、探しているクエリ文字列変数がわかっている場合は、これを行うことができます。

self.request.get("name-of-querystring-variable")
51
jamesaharvey

グーグル経由でこれを見つけた人のために、

私はそれを考え出した、

次のコマンドを使用して、現在のリクエストのクエリ文字列を取得できます。

url_get = self.request.GET

これはクエリ文字列のUnicodeMultiDictです!

3
Alex

これを試して

import os
url = os.environ['HTTP_Host']
0
Arty

これは、Python 3 in CGI(A)URL、(B)GETパラメータ、および(C)POST data:

================================================== =====

sys、os、ioのインポート

CAPTURE URL

myDomainSelf = os.environ.get( 'SERVER_NAME')

myPathSelf = os.environ.get( 'PATH_INFO')

myURLSelf = myDomainSelf + myPathSelf

キャプチャデータを取得

myQuerySelf = os.environ.get( 'QUERY_STRING')

キャプチャPOSTデータ

myTotalBytesStr =(os.environ.get( 'HTTP_CONTENT_LENGTH'))

if(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")

RAWをファイルに書き込む

mySpy = "myURLSelf:[" + str(myURLSelf)+ "]\n"

mySpy = mySpy + "myQuerySelf:[" + str(myQuerySelf)+ "]\n"

mySpy = mySpy + "myPostData:[" + str(myPostData)+ "]\n"

ここで独自のmyPathを定義する必要があります

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

クエリ文字列

REMOTE_ADDR

リモートホスト

REMOTE_IDENT

REMOTE_USER

REQUEST_METHOD

SCRIPT_NAME

サーバー名

サーバポート

SERVER_PROTOCOL

SERVER_SOFTWARE

============================================

私は、MIISを介してCGIがインストールされたWindows ServerでPython 3を実行するこれらのメソッドを使用しています。

これがあなたに役立つことを願っています。

0
Al-Noor Ladhani

私は他の答えを出すことができませんでしたが、これが私のために働いたものです:

    url = os.environ['HTTP_Host']
    uri = os.environ['REQUEST_URI']
    return url + uri

リクエストモジュールには「url」属性があり、urlが変更されています。
これを試してください:

import requests
current_url=requests.get("some url").url
print(current_url)
0
Seung Hwa Paik

あなたはOSを使うことができます

    import os
    url = os.environ
    print(url)

これで、os.environが提供するすべてのデータが表示されます。 「QUERY_STRING」が必要なようです。他のJSONオブジェクトと同様に、このようなデータを取得できます。

    import os
    url = os.environ['QUERY_STRING']
    print(url)
0
embulldogs99