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