web-dev-qa-db-ja.com

Python)を使用してURLからクエリ文字列を削除するにはどうすればよいですか?

例:

http://example.com/?a=text&q2=text2&q3=text3&q2=text4

q2」を削除すると、次のようになります。

http://example.com/?q=text&q3=text3

この場合、複数の "q2"があり、すべて削除されています。

16
user990611
import cgi
import urlparse
url = "http://example.com/?a=text&q2=text2&q3=text3&q2=text4"
qs = cgi.parse_qs(urlparse.urlparse(url)[4])
del(qs['q2'])
print qs

明示的に...

>>> import cgi
>>> import urlparse
>>> url = "http://example.com/?a=text&q2=text2&q3=text3&q2=text4"
>>> qs = cgi.parse_qs(urlparse.urlparse(url)[4])
>>> del(qs['q2'])
>>> print qs
{'a': ['text'], 'q3': ['text3']}
>>>
2
Mike Pennington
import sys

if sys.version_info.major == 3:
    from urllib.parse import urlencode, urlparse, urlunparse, parse_qs
else:
    from urllib import urlencode
    from urlparse import urlparse, urlunparse, parse_qs

url = 'http://example.com/?a=text&q2=text2&q3=text3&q2=text4&b#q2=keep_fragment'
u = urlparse(url)
query = parse_qs(u.query, keep_blank_values=True)
query.pop('q2', None)
u = u._replace(query=urlencode(query, True))
print(urlunparse(u))

出力:

http://example.com/?a=text&q3=text3&b=#q2=keep_fragment
63
lazy1

すべてのクエリ文字列パラメータを削除するには:

from urllib.parse import urljoin, urlparse

url = 'http://example.com/?a=text&q2=text2&q3=text3&q2=text4'
urljoin(url, urlparse(url).path)  # 'http://example.com/'

Python2の場合、インポートを次のように置き換えます。

from urlparse import urljoin, urlparse
27
png

PythonのURL操作ライブラリを使用するfurl

import furl
f = furl.furl("http://example.com/?a=text&q2=text2&q3=text3&q2=text4")
f.remove(['q2'])
print(f.url)
11
Mayank Jaiswal

これは、文字列を分割するだけの問題ではありませんか?

>>> url = http://example.com/?a=text&q2=text2&q3=text3&q2=text4
>>> url = url.split('?')[0]
'http://example.com/'
6
Clarius
query_string = "https://example.com/api/api.php?user=chris&auth=true"
url = query_string[:query_string.find('?', 0)]
2
Chris Zat

または、簡単に言えば、_w3lib.url_のurl_query_cleaner()を使用するだけです。

_from w3lib.url import url_query_cleaner

url = 'http://example.com/?a=text&q2=text2&q3=text3&q2=text4'
url_query_cleaner(url, ('q2'), remove=True)
_

出力:_http://example.com/?a=text&q3=text3_

0
Hamza