- •Email пакеті
- •Хабарларды талдау. Message классы
- •Хабарлама қалыптастыру
- •Тақырыпша өрісін талдау
- •Import email.Header
- •Import sys
- •Атаулар кеңістігі
- •Import os
- •Cgi модулі
- •Өндіруші ортасы
- •Zope және оның обьектілі моделі
- •Smtplib модулі
- •Poplib модулі
- •Import urllib
- •Import urllib
- •Url талдау үшін функия
- •Urllib2 мүмкіндіктері
- •Import urllib2
- •Қорытынды
- •Обьект – байланыс
Url талдау үшін функия
RFC 2396-құжатымен келісілген URL келесі шаблонға құрылу керек:
scheme://netloc/path;parameters?query#fragment
мұндағы
scheme
Адресті схема. Мысалы: http, ftp, gopher.
netloc
Желідегі орналасу орны:
path
Ресурсқа жол
params
Параметрлер:
query
Сұраныстар жолы
frag
Фрагмент идентификаторы.
URL - urllib.urlencode() құру үшін функциялардың біреуі қолданылған. Одан басқа urllib модулінде басқа функциялары да бар:
quote(s, safe='/')
Оларды веб-серверде жіберуге болатындай, функция символдарды URL-ге экрандайды. Ол жолды ресурсқа экрандау үшін арналған, сондықтан '/' тура солай қалдырады. Мысалы:
>>> urllib.quote("rnd@onego.ru")
'rnd%40onego.ru'
>>> urllib.quote("a = b + c")
'a%20%3D%20b%20%2B%20c'
>>> urllib.quote("0/1/1")
'0/1/1'
>>> urllib.quote("0/1/1", safe="")
'0%2F1%2F1'
quote_plus(s, safe='')
Оларды веб-серверде жіберуге болатындай, функция символдарды URL-ге (сұрау жолында) экрандайды. quote() ұқсас, бірақ пробелдерді қосу белгісіне ауыстырады.
unquote(s)
quote_plus() керіні, түрлендіру. Мысалы:
>>> urllib.unquote('a%20%3D%20b%20%2B%20c')
'a = b + c'
unquote_plus(s)
quote_plus() керіні, түрлендіру. Мысалы:
>>> urllib.unquote_plus('a+=+b+%2B+c')
'a = b + c'
URL талдау үшін urlparse модуліндегі функцияларды қолдануға болады:
urlparse(url, scheme='', allow_fragments=1)
URL 6 құрастыру бойынша талқылайды (символдарды экрандауды сақтай отыра): scheme://netloc/path;params?query#frag
urlsplit(url, scheme='', allow_fragments=1)
URL 6 құрастыру бойынша талқылайды (символдарды экрандауды сақтай отыра): scheme://netloc/path;params?query#frag
urlunparse((scheme, netloc, url, params, query, fragment))
6 құрастырудан URL-ді жинақтайды.
urlunsplit((scheme, netloc, url, query, fragment))
5 құрастырудан URL-ді жинақтайды.
Мысал:
>>> from urlparse import urlsplit, urlunsplit
>>> URL = "http://google.com/search?q=Python"
>>> print urlsplit(URL)
('http', 'google.com', '/search', 'q=Python', '')
>>> print urlunsplit(
... ('http', 'google.com', '/search', 'q=Python', ''))
http://google.com/search?q=Python
Тағыда сол urlparse модулінің функциясы URL екі бөлігін – базалық және қатыстық, дұрыс байланыстыруға мүмкіндік береді:
>>> import urlparse
>>> urlparse.urljoin('http://python.onego.ru', 'itertools.html')
'http://python.onego.ru/itertools.html'
Urllib2 мүмкіндіктері
urllib и urlparse модулдерінің функциональдығы, веб-клиенттер сияқты сценарийлерді Python-да шешетін, көптеген тапсырмаларға жетеді. Соған қарамастан кейде одан көп талап етіледі. Бұл жағдайға httplib - HTTP хаттамасымен жұмыс істеу үшін модулін қолдануға және HTTP-сұранысы үшін жекеменшік класс құруға болады (дәрісте httplib модулі қарастырылмаған). Алайда, керекті функциональдылық urllib2 модулінде бар болуы әбден мүмкін.
Осы модулдердің тиімді мүмкіндіктерінің бірі – рұқсатты талап ететін веб-обьектіге қолжетімділік. Төменде тек қана рұқсаттпен қолжетімділікті қамтымайды, сонымен қатар urllib2 модулінің негізгі ойын көрсететін мысалы қарастырылған: әрбіреуі тар спецификалық тапсырмаларды шешетін өңдерушілерді (handlers) қолдану.
Келесі мысал urllib2 модулі көмегімен жекеменшік URL ашушыны қалай құру керек екенін көрсетеді (бұл мысал Python-дағы құжаттамасынан алынған).
