Zanurkuj w Pythonie/Źródła/openanything.py: Różnice pomiędzy wersjami
Usunięta treść Dodana treść
Zdzichobot (dyskusja | edycje) m Python/Źródła/openanything.py przeniesiono do Zanurkuj w Pythonie/Źródła/openanything.py: zmiana nazwy podręcznika |
tłumaczenie |
||
Linia 1:
<source lang='python'>
Ten program jest częścią książki "Zanurkuj w Pythonie", podręcznika
o Pythonie dla doświadczonych programistów. Najnowszą wersję można
znaleźć tu: http://pl.wikibooks.org/wiki/Zanurkuj_w_Pythonie.
Program ten został oparty na przykładach zawartych w książce
"Dive Into Python", a dostępnej stąd: http://www.diveintopython.org.
"""
__author__ = 'Mark Pilgrim (mark@diveintopython.org)'
Linia 39 ⟶ 42:
def openAnything(source, etag=None, lastmodified=None, agent=USER_AGENT):
u"""URL,
Funkcja ta pozwala tworzyć parsery, które przyjmują jakieś źródło wejścia
(URL,
a następnie zaznajamia się z nim w odpowiedni sposób. Zwracany obiekt będzie
nagłówka żądania URL-a If-None-Match
łańcucha znaków określającego czas i datę w GMT.
Data i czas sformatowana w tym łańcuchu zostanie wykorzystana
Jeśli argument agent zostanie określony, będzie on wykorzystany
w nagłówku żądania User-Agent
"""
Linia 66 ⟶ 69:
if urlparse.urlparse(source)[0] == 'http':
#
request = urllib2.Request(source)
request.add_header('User-Agent', agent)
Linia 77 ⟶ 80:
return opener.open(request)
#
try:
return open(source)
Linia 83 ⟶ 86:
pass
#
return StringIO(str(source))
def fetch(source, etag=None, lastmodified=None, agent=USER_AGENT):
u"""Pobiera dane z URL, pliku, strumienia lub łańcucha znaków"""
result = {}
f = openAnything(source, etag, lastmodified, agent)
result['data'] = f.read()
if hasattr(f, 'headers'):
#
result['etag'] = f.headers.get('ETag')
#
result['lastmodified'] = f.headers.get('Last-Modified')
if f.headers.get('content-encoding') == 'gzip':
# odkompresowuje otrzymane dane, ponieważ są one zakompresowane jako gzip
result['data'] = gzip.GzipFile(fileobj=StringIO(result['data'])).read()
if hasattr(f, 'url'):
Linia 107 ⟶ 110:
return result
</source>
[[Kategoria:Zanurkuj w Pythonie/Źródła|openanything.py]]
|