urllib urlparse ң ғ, - қ Python- , ө ғ . ғ қ ө . ұ ғғ httplib - HTTP ұ ү қғ ә HTTP-ұ ү құғ (ә httplib қғ). , қ urllib2 ә ү.
ң үң ұқ - қ. ө қ ұқ қ қ, қ urllib2 ң ө қғ: ә қ өң (handlers) қ.
urllib2 ө URL қ құ ө (ұ Python-ғ құ ғ).
import urllib2
# қ ә
authinfo = urllib2.HTTPBasicAuthHandler()
authinfo.add_password('My page', 'localhost', 'user1', 'secret')
# қ қ
proxy_support = urllib2.ProxyHandler({'http': 'http://localhost:8080'})
# өң ө ң құ
opener = urllib2.build_opener(proxy_support,
authinfo,
urllib2.CacheFTPHandler)
# ө
opener.addheaders = [('User-agent', 'Mozilla/5.0')]
# ү ң
urllib2.install_opener(opener)
# қ
f = urllib2.urlopen('http://localhost/mywebdir/')
print f.read()[:100]
ұ , mod_python қғ (ғ ә қң), қғ қ . add_password() ә қ қ әң ( -ң ғ AuthName "My page" ) -ә (realm) . Қғ ү ү:қ , қ ә ң ө. Ә, ң ұ ұ ү - ұқ .
қ ү ү өң қғғ: HTTPBasicAuthHandler, ProxyHandler CacheFTPHandler. urllib2 , әң ғ Python қғ ұқң құ . қ ү : OpenerDirector. ә ң urllib2.build_opener() құ.
|
|
urllib2 URL ғ ұ ү . ұ urllib2.Request . ң ұң ү қ. HTTP-ұ қ қ қ , ұқ қ қ ғ ө.
import urllib2, base64
req = urllib2.Request('http://localhost/mywebdir')
b64 = base64.encodestring('user1:secret').strip()
req.add_header('Authorization', 'Basic %s' % b64)
req.add_header('User-agent', 'Mozilla/5.0')
f = urllib2.urlopen(req)
print f.read()[:100]
ұ ө ұғ, қ: - қ ә HTTP-ұң Authorization ө (ғ base64).
:
, - қ ө.
XML-RPC
ү ңқ өқ қ. Python- ғ құ ә ң ө құ . , Python- ғ қ өң , ү XML-RPC ңғ . қ ңғ қғ XML ң қ қ, , ұғқ. RPC ққ (Remote Procedure Call, қққғ қ) ң ә ү: XML-RPC ө қққғ қғ . ә XML-RPC ө қ ғ , ғ ә ү (, , қ ә ә ..) қ , . Python қққғ қ қ қ ғ қ:
import xmlrpclib
#
req = xmlrpclib.ServerProxy("http://localhost:8000")
try:
# қққғ қ
print req.add(1, 3)
except xmlrpclib.Error, v:
print "ERROR",
ө XML-RPC-ң ө (ғ ө ү, ң қ қ):
from SimpleXMLRPCServer import SimpleXMLRPCServer
srv = SimpleXMLRPCServer(("localhost", 8000)) # қ
srv.register_function(pow) #
srv.register_function(lambda x,y: x+y, 'add') # ә ғ
srv.serve_forever() # ұғ қ
XML-RPC ( ұ ғ қғ ү ң) ө қ қғ үң қ ә ә қ ә - ө ү ө .
|
|
ң!
Ә, ұ ғ. қ XML-RPC қ қ қғ . қ, ғ өң ү, өғ қ . өғ ү ( ө ә қ ) ө қ : ө қ , қ, ThreadingXMLRPCServer, SocketServer.TCPServer SocketServer.ThreadingTCPServer қ. ұ ғ ұ. ұқ: SimpleXMLRPCServer ң қ қ?
ұ ә қ ә құғ ә ұ ү Python ү ө. Python-ғ ң қғ , қ қ ү ғ ү қғ . ұ ү socket қ , ғ ң ү ғ ғ smtplib, poplib, httplib ә .. WWW ү ұ ү urllib, urllib2, urlparse қғ . ғ қ ұғ қ. ү қ ө ү ұ: құғ, ң қ , . ұ ә ғ ң құ . XML-RPC ү - ұ . ұ HTTP құ, қ қғ қ .
10-ә: қ ұ