In [1]:
import urllib.parse
In [2]:
url = 'https://www.google.co.jp/search?q=%E6%A1%9C&tbm=isch'
In [3]:
print(urllib.parse.urlparse(url))
In [4]:
qs = urllib.parse.urlparse(url).query
In [5]:
print(qs)
In [6]:
print(type(qs))
In [7]:
qs_d = urllib.parse.parse_qs(qs)
In [8]:
print(qs_d)
In [9]:
print(type(qs_d))
In [10]:
print(qs_d['q'])
In [11]:
print(type(qs_d['q']))
In [12]:
print(qs_d['q'][0])
In [13]:
print(type(qs_d['q'][0]))
In [14]:
qs_l = urllib.parse.parse_qsl(qs)
In [15]:
print(qs_l)
In [16]:
print(type(qs_l))
In [17]:
print(qs_l[0])
In [18]:
print(type(qs_l[0]))
In [19]:
print(qs_l[0][1])
In [20]:
print(type(qs_l[0][1]))
In [21]:
d = {'key1': 'value / one', 'key2': 'バリュー2'}
In [22]:
d_qs = urllib.parse.urlencode(d)
In [23]:
print(d_qs)
In [24]:
print(type(d_qs))
In [25]:
l = [('key1', 'value / one'), ('key2', 'バリュー2')]
In [26]:
l_qs = urllib.parse.urlencode(l)
In [27]:
print(l_qs)
In [28]:
print(type(l_qs))
In [29]:
print(urllib.parse.urlencode(d))
In [30]:
print(urllib.parse.urlencode(d, quote_via=urllib.parse.quote))
In [31]:
print(urllib.parse.urlencode(d, safe='/'))
In [32]:
print(urllib.parse.urlencode(d, safe='/', quote_via=urllib.parse.quote))
In [33]:
print(qs_d)
In [34]:
print(urllib.parse.urlencode(qs_d))
In [35]:
print(urllib.parse.urlencode(qs_d, doseq=True))
In [36]:
print(url)
In [37]:
print(url.replace('isch', 'vid'))
In [38]:
def update_query(url, key, org_val, new_val):
pr = urllib.parse.urlparse(url)
d = urllib.parse.parse_qs(pr.query)
l = d.get(key)
if l:
d[key] = [new_val if v == org_val else v for v in l]
else:
d[key] = new_val
return urllib.parse.urlunparse(pr._replace(query=urllib.parse.urlencode(d, doseq=True)))
In [39]:
print(update_query(url, 'tbm', 'isch', 'vid'))
In [40]:
print(update_query(url, 'q', '桜', '梅'))
In [41]:
print(update_query(url, 'new-key', 'xxx', 'yyy'))
In [42]:
def remove_query(url, key):
pr = urllib.parse.urlparse(url)
d = urllib.parse.parse_qs(pr.query)
d.pop(key, None)
return urllib.parse.urlunparse(pr._replace(query=urllib.parse.urlencode(d, doseq=True)))
In [43]:
print(remove_query(url, 'tbm'))
In [44]:
print(remove_query(url, 'new-key'))
In [45]:
def remove_all_query(url):
return urllib.parse.urlunparse(urllib.parse.urlparse(url)._replace(query=None))
In [46]:
print(remove_all_query(url))