urllib

urllib on veel üks alternatiiv Pythonis päringute tegemiseks. Võrreldes Requests mooduliga on see veidi madalatasemelisem (vajab tihti rohkem tööd sama tulemuse saavutamiseks), kuid kuna urllib on osa Pythoni standardteegist, siis plussina midagi eraldi paigaldama ei pea.

Lihtsa GET päringu tegemine

Alustame vajaliku importimisega:

import urllib.request

Seejärel teeme GET-päringu ja prindime vastuse:

response = urllib.request.urlopen('https://reddit.com')
print(response.read())

Lihtsa POST päringu tegemine

import urllib.request
import urllib.parse
url = "http://reddit.com"
params = {
    "name": "Bertram Gilfoyle",
    "age": -1,
    "has_glasses": True
}

data = urllib.parse.urlencode(params, encoding='utf-8')
req = urllib.request.Request(url, data=data)
response = urllib.request.urlopen(req)
print(response.read())

POST päringule headerite lisamine:

import urllib.request
import urllib.parse
API_KEY = "averysecureapikey"
url = "http://reddit.com"
params = {
    "name": "Bertram Gilfoyle",
    "age": -1,
    "has_glasses": True
}
headers = {"X-API-KEY": API_KEY}

data = urllib.parse.urlencode(params, encoding='utf-8')
req = urllib.request.Request(url, data=data, headers=headers)
response = urllib.request.urlopen(req)
print(response.read())

Päringu tegemine kasutades 'with' võtmesõna

with urllib.request.urlopen("https://reddit.com") as request:
    print(request.read())

Stringi saamine HTTP vastusest

Kuna response.read() tagastab andmetüübi bytes, peame sellest stringi saamiseks kasutama response.read().decode('utf-8').

Lisaks saad lugeda siit: https://docs.python.org/3.1/howto/urllib2.html