Подтвердить что ты не робот

Библиотека для создания URL-адресов в Python

Мне нужно найти библиотеку для создания URL-адресов в python, например:

http://subdomain.domain.com?arg1=someargument&arg2=someotherargument

Какую библиотеку вы бы рекомендовали использовать и почему? Есть ли "лучший" выбор для такого рода библиотеки?

4b9b3361

Ответ 1

urlparse в стандартной библиотеке python - это создание правильных URL-адресов. Проверьте документацию urlparse

Ответ 2

Я бы пошел на Python urllib, это встроенная библиотека.

# Python 2:
import urllib

# Python 3:
# import urllib.parse

getVars = {'var1': 'some_data', 'var2': 1337}
url = 'http://domain.com/somepage/?'

# Python 2:
print(url + urllib.urlencode(getVars))

# Python 3:
# print(url + urllib.parse.urlencode(getVars))

Вывод:

http://domain.com/somepage/?var2=1337&var1=some_data

Ответ 3

Вот пример использования urlparse для создания URL-адресов. Это обеспечивает удобство добавления пути к URL-адресу, не беспокоясь о проверке косой черты.

import urllib
import urlparse

def build_url(baseurl, path, args_dict):
    # Returns a list in the structure of urlparse.ParseResult
    url_parts = list(urlparse.urlparse(baseurl))
    url_parts[2] = path
    url_parts[4] = urllib.urlencode(args_dict)
    return urlparse.urlunparse(url_parts)

args = {'arg1': 'value1', 'arg2': 'value2'}
# works with double slash scenario
url1 = build_url('http://www.example.com/', '/somepage/index.html', args)
print(url1)

>>> http://www.example.com/somepage/index.html?arg1=value1&arg2=value2

# works without slash
url2 = build_url('http://www.example.com', 'somepage/index.html', args)
print(url2)

>>> http://www.example.com/somepage/index.html?arg1=value1&arg2=value2

Ответ 4

import urllib

def make_url(base_url , *res, **params):
    url = base_url
    for r in res:
        url = '{}/{}'.format(url, r)
    if params:
        url = '{}?{}'.format(url, urllib.urlencode(params))
    return url

>>>print make_url('http://example.com', 'user', 'ivan', aloholic='true', age=18)

http://example.com/user/ivan?age=18&aloholic=true

Ответ 5

import requests
payload = {'key1':'value1', 'key2':'value2'}
response =  requests.get('http://fireoff/getdata', params=payload)
print response.url

печатает:    http://fireoff/getdata?key1=value1&key2=value2