Http Download.yamaha.com API Asset File Language=Es&Site=Es.yamaha
requests, czyli HTTP dla ludzi
-
Upload
zbigniew-siciarz -
Category
Documents
-
view
492 -
download
2
description
Transcript of requests, czyli HTTP dla ludzi
httplib urllib(2) requests na ratunek
requests, czyli HTTP dla ludzi
Zbigniew Siciarz
PyWaw 11 lipca 2011
@zsiciarz
requests, czyli HTTP dla ludzi
httplib urllib(2) requests na ratunek
Plan prezentacji
1 httplib
2 urllib(2)
3 requests na ratunek
@zsiciarz
requests, czyli HTTP dla ludzi
httplib urllib(2) requests na ratunek
httplib
import httplib
conn = httplib.HTTPConnection("httpbin.org")conn.request("GET", "/status /418")response = conn.getresponse ()print response.status , response.reasonprint response.read()
@zsiciarz
requests, czyli HTTP dla ludzi
httplib urllib(2) requests na ratunek
httplib
zbyszek@wicherek :~/ Dokumenty/requests$ python code/httplib1.py418 I’M A TEAPOT
-=[ teapot ]=-
_...._.’ _ _ ‘.
| ."‘ ^ ‘". _,\_;‘"---" ‘|//
| ;/\_ _/
‘"""‘
@zsiciarz
requests, czyli HTTP dla ludzi
httplib urllib(2) requests na ratunek
urllib/urllib2
obie biblioteki w stdlib
ró»na funkcjonalno±¢
urllib: kodowanie parametrów, pobieranie wprost do pliku
urllib2: obsªuga otwieraczy
@zsiciarz
requests, czyli HTTP dla ludzi
httplib urllib(2) requests na ratunek
urllib/urllib2
obie biblioteki w stdlib
ró»na funkcjonalno±¢
urllib: kodowanie parametrów, pobieranie wprost do pliku
urllib2: obsªuga otwieraczy
@zsiciarz
requests, czyli HTTP dla ludzi
httplib urllib(2) requests na ratunek
urllib/urllib2
obie biblioteki w stdlib
ró»na funkcjonalno±¢
urllib: kodowanie parametrów, pobieranie wprost do pliku
urllib2: obsªuga otwieraczy
@zsiciarz
requests, czyli HTTP dla ludzi
httplib urllib(2) requests na ratunek
urllib/urllib2
obie biblioteki w stdlib
ró»na funkcjonalno±¢
urllib: kodowanie parametrów, pobieranie wprost do pliku
urllib2: obsªuga otwieraczy
@zsiciarz
requests, czyli HTTP dla ludzi
httplib urllib(2) requests na ratunek
urllib2 - Basic Auth
import urllib2
url = ’http :// httpbin.org/basic -auth/user/pass’user = ’user’password = ’pass’req = urllib2.Request(url)
pwd_manager = urllib2.HTTPPasswordMgrWithDefaultRealm ()pwd_manager.add_password(None , url , user , password)auth_manager = urllib2.HTTPBasicAuthHandler(pwd_manager)opener = urllib2.build_opener(auth_manager)urllib2.install_opener(opener)
response = urllib2.urlopen(req)print response.getcode ()print response.headers.getheader(’content -type’)print response.read()
O RLY?
@zsiciarz
requests, czyli HTTP dla ludzi
httplib urllib(2) requests na ratunek
urllib2 - Basic Auth
import urllib2
url = ’http :// httpbin.org/basic -auth/user/pass’user = ’user’password = ’pass’req = urllib2.Request(url)
pwd_manager = urllib2.HTTPPasswordMgrWithDefaultRealm ()pwd_manager.add_password(None , url , user , password)auth_manager = urllib2.HTTPBasicAuthHandler(pwd_manager)opener = urllib2.build_opener(auth_manager)urllib2.install_opener(opener)
response = urllib2.urlopen(req)print response.getcode ()print response.headers.getheader(’content -type’)print response.read()
O RLY?@zsiciarz
requests, czyli HTTP dla ludzi
httplib urllib(2) requests na ratunek
requests
http://python-requests.org/
Requests: Python HTTP Module (That Doesn't Suck)
@zsiciarz
requests, czyli HTTP dla ludzi
httplib urllib(2) requests na ratunek
requests
http://python-requests.org/
Requests: Python HTTP Module (That Doesn't Suck)
Requests: The Simple (e.g. usable) HTTP Module
@zsiciarz
requests, czyli HTTP dla ludzi
httplib urllib(2) requests na ratunek
requests
http://python-requests.org/
Requests: Python HTTP Module (That Doesn't Suck)
Requests: The Simple (e.g. usable) HTTP Module
Requests: HTTP for Humans
@zsiciarz
requests, czyli HTTP dla ludzi
httplib urllib(2) requests na ratunek
requests - API
requests.get(...)
requests.post
requests.put
requests.delete
requests.patch
requests.options
requests.head
@zsiciarz
requests, czyli HTTP dla ludzi
httplib urllib(2) requests na ratunek
requests - API
requests.get(...)
requests.post
requests.put
requests.delete
requests.patch
requests.options
requests.head
@zsiciarz
requests, czyli HTTP dla ludzi
httplib urllib(2) requests na ratunek
requests - API
requests.get(...)
requests.post
requests.put
requests.delete
requests.patch
requests.options
requests.head
@zsiciarz
requests, czyli HTTP dla ludzi
httplib urllib(2) requests na ratunek
requests - API
requests.get(...)
requests.post
requests.put
requests.delete
requests.patch
requests.options
requests.head
@zsiciarz
requests, czyli HTTP dla ludzi
httplib urllib(2) requests na ratunek
requests - API
requests.get(...)
requests.post
requests.put
requests.delete
requests.patch
requests.options
requests.head
@zsiciarz
requests, czyli HTTP dla ludzi
httplib urllib(2) requests na ratunek
requests - API
requests.get(...)
requests.post
requests.put
requests.delete
requests.patch
requests.options
requests.head
@zsiciarz
requests, czyli HTTP dla ludzi
httplib urllib(2) requests na ratunek
requests - API
requests.get(...)
requests.post
requests.put
requests.delete
requests.patch
requests.options
requests.head
@zsiciarz
requests, czyli HTTP dla ludzi
httplib urllib(2) requests na ratunek
requests - proste »¡danie GET
import requests
response = requests.get(’http :// httpbin.org/status /418’)
print response.status_codeprint response.content
@zsiciarz
requests, czyli HTTP dla ludzi
httplib urllib(2) requests na ratunek
requests - Basic Auth
import requests
url = ’http :// httpbin.org/basic -auth/user/pass’response = requests.get(url , auth=(’user’, ’pass’))
print response.status_codeprint response.headers[’content -type’]print response.content
@zsiciarz
requests, czyli HTTP dla ludzi
httplib urllib(2) requests na ratunek
requests - Basic Auth
zbyszek@wicherek :~/ Dokumenty/requests$ python code/requests_2.py200application/json{
"authenticated": true ,"user": "user"
}
@zsiciarz
requests, czyli HTTP dla ludzi
httplib urllib(2) requests na ratunek
requests - POST i upload pliku
import requests
data = dict(username=’’)with open(__file__) as f:
response = requests.post(’http :// httpbin.org/post’,data=data , files={’filename ’: f})
print response.status_codeprint response.content
@zsiciarz
requests, czyli HTTP dla ludzi
httplib urllib(2) requests na ratunek
requests - POST i upload pliku
zbyszek@wicherek :~/ Dokumenty/requests$ python code/requests_3.py200{
"origin": "::ffff :184.73.223.212","files": {
"filename": "import requests\n\n<CIACH >"},"form": null ,"url": "http :// httpbin.org/post","args": {},"headers": {
"Content -Length": "555",<CIACH >"Content -Type": "multipart/form -data; boundary =3298
fc5c93854f96b712fa4708e4cdef"},"data": "username"
}
@zsiciarz
requests, czyli HTTP dla ludzi
httplib urllib(2) requests na ratunek
Alternatywy
PyCURL wrapper na libcurl
Mechanize klient to "przegl¡darka"
@zsiciarz
requests, czyli HTTP dla ludzi
httplib urllib(2) requests na ratunek
Alternatywy
PyCURL wrapper na libcurl
Mechanize klient to "przegl¡darka"
@zsiciarz
requests, czyli HTTP dla ludzi
httplib urllib(2) requests na ratunek
The End
Pytania?
http://siciarz.net@zsiciarz
@zsiciarz
requests, czyli HTTP dla ludzi