Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
104-155.docx
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
94 Кб
Скачать
☆

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-дағы құжаттамасынан алынған).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]